Table des matières
Les types primitifs sont des valeurs immuables
Le type de référence pointe vers l'adresse mémoire
Conseils pour juger les types
Maison interface Web js tutoriel Types de données JavaScript: référence primitive vs

Types de données JavaScript: référence primitive vs

Jul 13, 2025 am 02:43 AM
php java

Les 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.

Types de données JavaScript: référence primitive vs

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.

Types de données JavaScript: référence primitive vs

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:

Types de données JavaScript: référence primitive vs
 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.

Types de données JavaScript: référence primitive vs

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 que null 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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Sujets chauds

Tutoriel PHP
1527
276
Excel trouver et remplacer ne fonctionne pas Excel trouver et remplacer ne fonctionne pas Aug 13, 2025 pm 04:49 PM

CheckkSearchSettings like "MatchEnteRireCellContents" et "MatchCase" ByExpandingOptionsInFindanDreplace, garantissant "lookin" issettominuesand »dans" TOCORRECTSCOPE; 2.LOORHFORHIDDENCHARACTER

Edge ne sauvant pas l'histoire Edge ne sauvant pas l'histoire Aug 12, 2025 pm 05:20 PM

Tout d'abord, Checkif "ClearbrowsingDataOnClose" IsTurneDOninsettingsandTurnitofftoenSureHistoryissaved.2.Confirmyou'renotusingInprivateMode, asitdoesNotsAvehistoryByDesigr.3.Disable ExtensionStendatoryToUleoutHeleft

Décrivez le modèle de conception de l'observateur et sa mise en œuvre dans PHP. Décrivez le modèle de conception de l'observateur et sa mise en œuvre dans PHP. Aug 15, 2025 pm 01:54 PM

TheObserverdesignpatternenablesautomaticnotificationofdependentobjectswhenasubject'sstatechanges.1)Itdefinesaone-to-manydependencybetweenobjects;2)Thesubjectmaintainsalistofobserversandnotifiesthemviaacommoninterface;3)Observersimplementanupdatemetho

Comment implémenteriez-vous le versioning d'API dans une application PHP? Comment implémenteriez-vous le versioning d'API dans une application PHP? Aug 14, 2025 pm 11:14 PM

APIVERSIONINGInPHPCANBEEFECECTECTIVEMENT Implexedusingurl, en-tête, OrseryParameterApproaches, WithurlandHeaderVersioningBeingMostreComMend.1.ForUrl-basé à la Version, comprend la conduite de l'Inversaire (par exemple, / v1 / utilisateurs) et OrganizeControllersInversedDirectorDectores, RoS, ROTO

Comment déployer une application Java Comment déployer une application Java Aug 17, 2025 am 12:56 AM

Préparez-vous en application par rapport à Mavenorgradletobuildajarorwarfile, externalisationConfiguration.2.ChoOSEADPLOYENDIRONMENT: Runonbaremetal / vmwithjava-jarandsystemd, deploywarontomcat, compeneriserisewithdocker, orusecloudplatformslikelise.

Comment configurer la journalisation dans une application Java? Comment configurer la journalisation dans une application Java? Aug 15, 2025 am 11:50 AM

L'utilisation de SLF4J combinée avec la journalisation ou le log4j2 est le moyen recommandé de configurer les journaux dans les applications Java. Il introduit des bibliothèques API et implémentation en ajoutant des dépendances Maven correspondantes; 2. Obtenez l'enregistreur via le loggerfactory de SLF4J dans le code et écrivez le code journal découplé et efficace à l'aide de méthodes de journalisation paramétrée; 3. Définir le format de sortie du journal, le niveau, la cible (console, le fichier) et le contrôle du journal du package via Logback.xml ou les fichiers de configuration log4j2.xml; 4. Activer éventuellement la fonction de balayage de fichiers de configuration pour atteindre un ajustement dynamique du niveau de journal, et Springboot peut également être géré via des points de terminaison de l'actionneur; 5. Suivez les meilleures pratiques, y compris

Liaison des données XML avec Castor en Java Liaison des données XML avec Castor en Java Aug 15, 2025 am 03:43 AM

CASTORENablesxml-to-javaObjectMappingViadefaultConverionsOrexplicitMappingFiles; 1) DefinejavaclasseswithGetters / seters; 2) useUnmarShallertOConvertXmltoObjects; 3)

JS Ajouter un élément au début du tableau JS Ajouter un élément au début du tableau Aug 14, 2025 am 11:51 AM

Dans JavaScript, la méthode la plus courante pour ajouter des éléments au début d'un tableau est d'utiliser la méthode Unsich (); 1. En utilisant unsith () modifiera directement le tableau d'origine, vous pouvez ajouter un ou plusieurs éléments pour retourner la nouvelle longueur du tableau ajouté; 2. Si vous ne souhaitez pas modifier le tableau d'origine, il est recommandé d'utiliser l'opérateur d'extension (tel que [Newelement, ... Arr]) pour créer un nouveau tableau; 3. Vous pouvez également utiliser la méthode CONCAT () pour combiner le nouveau tableau d'éléments avec le numéro d'origine, renvoyez le nouveau tableau sans modifier le tableau d'origine; En résumé, utilisez Unsich () lors de la modification du tableau d'origine et recommandez l'opérateur d'extension lorsque vous gardez le tableau d'origine inchangé.

See all articles