Types de données JavaScript: référence primitive vs
Jul 13, 2025 am 02:43 AMLes types de données de JavaScript sont divisés en types primitifs et types de référence. Les types primitifs incluent la cha?ne, le nombre, le booléen, le nul, un non défini et le symbole. Les valeurs sont immuables et copies des copies lorsqu'elles sont attribuées, de sorte qu'elles ne se affectent pas; Les types de référence tels que les objets, les tableaux et les fonctions stockent les adresses de mémoire, et les variables pointant vers le même objet s'afferchent mutuellement. Le typeof et l'instance de OFF peuvent être utilisés pour déterminer les types, mais prêtez attention au problème historique du type de null. Comprendre ces deux types de différences peut aider à écrire un code plus stable et fiable.
Les types de données JavaScript sont divisés en deux catégories: primitive et référence. Comprendre la différence entre eux est essentiel pour écrire un code plus stable et prévisible.

Les types primitifs sont des valeurs immuables
Il existe six types de données primitifs dans JavaScript: string
, number
, boolean
, null
, undefined
et symbol
(nouveau dans ES6). Ces types de valeurs sont immuables, ce qui signifie que vous ne pouvez pas modifier une valeur d'origine elle-même, vous ne pouvez le remplacer que par une nouvelle valeur.
Par exemple:

Soit name = "Tom"; name.touppercase (); // retourne "Tom", mais le nom lui-même est toujours "Tom"
Cela signifie que le fonctionnement du type d'origine ne modifiera pas la valeur d'origine, mais renverra une nouvelle valeur. Lorsque vous attribuez un type primitif à une autre variable, vous copiez réellement la copie de cette valeur:
Soit a = 10; Soit b = a; b = 20; console.log (a); // toujours 10
Par conséquent, l'affectation et le fonctionnement du type d'origine sont indépendants et ne se affectent pas mutuellement.

Le type de référence pointe vers l'adresse mémoire
Les types de référence incluent principalement les objets (objet), les tableaux (tableau) et les fonctions (fonction). Ils stockent des "références" à un emplacement en mémoire, pas aux données réelles elle-même.
Voir un exemple:
Soit obj1 = {nom: "Alice"}; Soit obj2 = obj1; obj2.name = "bob"; console.log (obj1.name); // Bob de sortie
Ici, obj2
ne copie pas le contenu d' obj1
, mais pointe vers la même adresse mémoire. Par conséquent, la modification des attributs de obj2
affectera également obj1
.
La même situation se produira également lorsque la fonction transmet les arguments:
function changeName (user) { user.name = "changé"; } Soit Person = {Name: "Original"}; Changename (personne); console.log (personne.Name); // Sortie modifiée
Parce que ce qui est passé est une référence à l'objet, les modifications de l'objet à l'intérieur de la fonction affecteront l'extérieur.
Conseils pour juger les types
Pour déterminer si une variable est un type primitif ou un type de référence, vous pouvez utiliser typeof
et instanceof
:
-
typeof
reconna?t la plupart des types primitifs (sauf quenull
renverra"object"
) -
instanceof
est utilisée pour déterminer le constructeur spécifique du type de référence
Par exemple:
typeof 42; // "nombre" type de "bonjour"; // "cha?ne" typeof true; // "booléen" typeof null; // "Objet" (c'est un problème historique avec JS) typeof {}; // "objet" typeof function () {}; // "fonction" (type de référence spécial)
Si vous souhaitez juger avec précision null
, vous pouvez utiliser === null
pour le gérer séparément.
Fondamentalement, c'est tout. Comprendre la différence entre les types primitifs et les types de référence peut vous aider à éviter de nombreux problèmes inattendus, en particulier lorsque vous traitez des structures complexes ou du passage des paramètres de fonction.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

ReadonlypropertiesInphp8.2CanlybeassignedonceinthestrustructoratDeclarationandcannotBemodifiedAfterward, applicationmutabilityaThelanguageLevel.2.Toachievedeep-immutability, webutableTypeSlikEarrayinArrayobjectorUSustomymutability, webutilletypeslikearraysinarrayobjectoruseseCustomMutabeColEctionSucha.

Setupamaven / gradleprojectwithjax-rsDependces likejersey; 2.CreateArestResourceUsingannotationsSuchas @ pathand @ get; 3.ConfigureTheApplicationViaApplicationsUbclassorweb.xml; 4.AddjacksonforjsonBindingByCludingJersey-Media-Json-Jackson; 5.DeploEp

Maven est un outil standard pour la gestion et la construction de projet Java. La réponse réside dans le fait qu'il utilise pom.xml pour normaliser la structure du projet, la gestion des dépendances, l'automatisation du cycle de vie de la construction et les extensions de plug-in; 1. Utilisez pom.xml pour définir GroupID, Arfactive, version et dépendances; 2. Commandes Master Core telles que MvnClean, compiler, tester, package, installer et déploier; 3. Utiliser la fonction de dépendance et les exclusions pour gérer les versions et les conflits de dépendance; 4. Organisez de grandes applications via la structure du projet multi-modules et sont gérées uniformément par le POM parent; 5

Tout d'abord, utilisez JavaScript pour obtenir les préférences du système utilisateur et les paramètres de thème stockés localement et initialiser le thème de la page; 1. La structure HTML contient un bouton pour déclencher la commutation du sujet; 2. CSS utilise: Root pour définir des variables de thème brillantes, la classe de mode. Dark définit les variables de thème sombres et applique ces variables via var (); 3. JavaScript détecte préfère-Color-Scheme et lit LocalStorage pour déterminer le thème initial; 4. Communiquez la classe en mode noir sur l'élément HTML lorsque vous cliquez sur le bouton et enregistre l'état actuel vers LocalStorage; 5. Tous les changements de couleur sont accompagnés d'une animation de transition de 0,3 seconde pour améliorer l'utilisateur

Oui, un menu déroulant CSS commun peut être implémenté via Pure HTML et CSS sans JavaScript. 1. Utilisez des ul imbriqués et Li pour construire une structure de menu; 2. Utilisez le: Hover Pseudo-Class pour contr?ler l'affichage et la cachette du contenu déroulant; 3. Position définie: relative pour le parent li, et le sous-menu est positionné en utilisant la position: absolue; 4. Le sous-menu défaut par défaut: Aucun, qui devient affichage: Block lorsqu'il a survolé; 5. Le tir-down à plusieurs niveaux peut être réalisé grace à la nidification, combinée à la transition, et à l'ajout d'animations fondues, et adaptées aux terminaux mobiles avec des requêtes multimédias. La solution entière est simple et ne nécessite pas de prise en charge JavaScript, qui convient au grand

Pour générer des valeurs de hachage à l'aide de Java, il peut être implémenté via la classe MessagediGest. 1. Obtenez une instance de l'algorithme spécifié, tel que MD5 ou SHA-256; 2. Appelez la méthode .update () à transmettre les données à chiffrer; 3. Appelez la méthode .digest () pour obtenir un tableau d'octets de hachat; 4. Convertir le tableau d'octets en une cha?ne hexadécimale pour la lecture; Pour les entrées telles que les fichiers gros, lisez dans des morceaux et appelez .Update () plusieurs fois; Il est recommandé d'utiliser SHA-256 au lieu de MD5 ou SHA-1 pour assurer la sécurité.

Utilisez dateTime.Strptime () pour convertir les cha?nes de date en objet DateTime. 1. Utilisation de base: Parse "2023-10-05" comme objet DateTime via "% y-% m-% d"; 2. prend en charge plusieurs formats tels que "% m /% d /% y" pour analyser les dates américaines, "% d /% m /% y" pour analyser les dates britanniques, "% b% d,% y% i:% m% p" pour analyser le temps avec AM / PM; 3. Utilisez dateUtil.parser.parse () pour déduire automatiquement les formats inconnus; 4. Utiliser .d

Le fichier SetfitS.JSON est situé dans le chemin de niveau utilisateur ou au niveau de l'espace de travail et est utilisé pour personnaliser les paramètres VScode. 1. Chemin de niveau utilisateur: Windows est C: \ Users \\ AppData \ Roaming \ Code \ User \ Settings.json, macOS est /users//library/applicationsupport/code/user/settings.json, Linux est /home//.config/code/user/settings.json; 2. Chemin au niveau de l'espace de travail: .vscode / Paramètres dans le répertoire racine du projet
