Maison interface Web js tutoriel Valeurs primitives et complexes dans les astuces JavaScript_javascript

Valeurs primitives et complexes dans les astuces JavaScript_javascript

May 16, 2016 pm 03:21 PM

Mots précédents

Les types de données JavaScript peuvent être divisés en deux types : les types primitifs et les types de référence. Les types primitifs sont également appelés types de base ou types simples. Les types de données de base de JavaScript incluent les types non définis, nuls, booléens, numériques et de référence, également appelés types complexes, qui sont des objets en Javascript. En conséquence, leurs valeurs sont également appelées respectivement valeurs primitives et valeurs complexes

Fonctionnalités

Valeur primitive

Pour faire simple : les valeurs primitives sont des valeurs fixes et simples, qui sont de simples segments de données stockés dans la pile, c'est-à-dire que leurs valeurs sont stockées directement à l'emplacement d'accès aux variables.

Une valeur primitive est la forme la plus basse ou la plus simple qui représente des données ou des informations disponibles en Javascript. Les valeurs de types primitifs sont appelées valeurs primitives car elles ne sont pas réductibles. C'est-à-dire que les nombres sont des nombres, les caractères sont des caractères, les valeurs booléennes sont vraies ou fausses et null et indéfini sont nulles et indéfinies. Les valeurs elles-mêmes sont simples et ne peuvent pas représenter des valeurs composées d'autres valeurs

Quels types sont des types primitifs ?

Le type primitif a les cinq types suivants : non défini, nul, booléen, nombre, chaîne

Nous pouvons utiliser typeof pour déterminer si un type entre dans la portée d'un certain type.

type d'opérateur

L'utilisation de l'opérateur typeof sur une variable ou une valeur renverra l'une des valeurs suivantes :

Remarque :

1. La valeur de retour est de type chaîne.

2. Par rapport au type d'origine, il existe toujours une différence nulle. C'est assez spécial. L'utilisation de typeof(null) renvoie "object".

Valeur complexe

Les valeurs complexes peuvent être composées de nombreux types différents d'objets JavaScript. La taille d'un objet complexe en mémoire est inconnue car un objet complexe peut contenir n'importe quelle valeur plutôt qu'une valeur spécifique connue


Méthode de stockage

Stockage en pile

Étant donné que la valeur d'origine occupe un espace fixe et est un simple segment de données, afin d'améliorer la vitesse de requête des variables, elle est stockée dans la pile


Stockage en tas

Étant donné que la taille de la valeur complexe va changer, elle ne peut pas être stockée sur la pile, sinon cela réduira la vitesse de requête de la variable, elle est donc stockée dans le tas (tas). La valeur stockée dans la variable est un pointeur. pointant vers l'objet de stockage L'emplacement mémoire


Méthode d'accès

Accès par valeur

Les valeurs primitives sont stockées et manipulées comme des valeurs non réductibles, leur référencement transfère leur valeur


1

2

3

4

var myString = 'foo';

var myStringCopy = myString;

var myString = null;

console.log(myString,myStringCopy);//null,'foo'

Copier après la connexion

Visite de devis

Les valeurs complexes sont stockées et manipulées par référence, et non par la valeur réelle. Lorsque vous créez une variable contenant un objet complexe, sa valeur est une adresse de référence en mémoire. Lorsque vous référencez un objet complexe, utilisez son nom (c'est-à-dire une variable ou une propriété d'objet) pour obtenir la valeur de l'objet via l'adresse de référence en mémoire


1

2

3

4

5

var myObject = {};

var copyOfMyObject = myObject;//没有复制值,而是复制了引用

myObject.foo = 'bar';//操作myObject中的值

//现在如果输出myObject和copyOfMyObject,则都会输出foo属性,因为它们引用的是同一个对象

console.log(myObject,copyOfMyObject);//Object{foo="bar"}

Copier après la connexion

Comparaison

Les valeurs primitives utilisent la comparaison de valeurs, tandis que les valeurs complexes utilisent la comparaison de références. Les valeurs complexes ne sont égales que si elles font référence au même objet (c'est-à-dire qu'elles ont la même adresse). Même deux variables contenant le même objet ne sont pas égales car elles ne pointent pas vers le même objet

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

var price1 = 10;

var price2 = 10;

var price3 = new Number('10');

var price4 = price3;

console.log(price1 == price2);//true

console.log(price1 == price3);//false

price4 = 10;

console.log(price4 == price3);//true

console.log(price4 === price3);//false

var objectFoo = {same:'same'};

var objectBar = {same:'same'};

console.log(objectFoo == objectBar);//false

var objectA = {foo: 'bar'};

var objectB = objectA;

console.log(objectA == objectB);//true

Copier après la connexion

Attributs dynamiques

Pour les valeurs complexes, vous pouvez leur ajouter des propriétés et des méthodes, et vous pouvez également modifier et supprimer leurs propriétés et méthodes ; mais les valeurs simples ne peuvent pas ajouter de propriétés et de méthodes


Les valeurs complexes prennent en charge les propriétés d'objet dynamiques car nous pouvons définir un objet, puis créer une référence, puis mettre à jour l'objet, et toutes les variables pointant vers l'objet seront mises à jour. Une nouvelle variable pointe vers un objet complexe existant et l'objet n'est pas copié. C'est pourquoi les valeurs complexes sont parfois appelées valeurs de référence. Les valeurs complexes peuvent avoir autant de références que nécessaire, et elles pointent toujours vers le même objet même si l'objet change


1

2

3

4

5

6

7

8

var str = 'test';

str.property = true;

console.log(str.property);//undefined 

var objA = {property: 'value'};

var pointer1 = objA;

var pointer2 = pointer1;

objA.property = null;

console.log(objA.property,pointer1.property,pointer2.property);//null null null

Copier après la connexion

포장형태

생성자가 생성한 객체로 원시값을 사용하면 자바스크립트는 객체의 속성과 메소드를 사용할 수 있도록 이를 객체로 변환한 후 객체 속성을 버리고 다시 원시값으로 변경합니다.

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

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.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

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)

Que dois-je faire si je rencontre l'impression de code brouillé pour les reçus en papier thermique frontal? Que dois-je faire si je rencontre l'impression de code brouillé pour les reçus en papier thermique frontal? Apr 04, 2025 pm 02:42 PM

Des questions et des solutions fréquemment posées pour l'impression de billets thermiques frontaux pour le développement frontal, l'impression de billets est une exigence commune. Cependant, de nombreux développeurs mettent en œuvre ...

Qui est payé plus de python ou de javascript? Qui est payé plus de python ou de javascript? Apr 04, 2025 am 12:09 AM

Il n'y a pas de salaire absolu pour les développeurs Python et JavaScript, selon les compétences et les besoins de l'industrie. 1. Python peut être davantage payé en science des données et en apprentissage automatique. 2. JavaScript a une grande demande dans le développement frontal et complet, et son salaire est également considérable. 3. Les facteurs d'influence comprennent l'expérience, la localisation géographique, la taille de l'entreprise et les compétences spécifiques.

Démystifier javascript: ce qu'il fait et pourquoi c'est important Démystifier javascript: ce qu'il fait et pourquoi c'est important Apr 09, 2025 am 12:07 AM

JavaScript est la pierre angulaire du développement Web moderne, et ses principales fonctions incluent la programmation axée sur les événements, la génération de contenu dynamique et la programmation asynchrone. 1) La programmation axée sur les événements permet aux pages Web de changer dynamiquement en fonction des opérations utilisateur. 2) La génération de contenu dynamique permet d'ajuster le contenu de la page en fonction des conditions. 3) La programmation asynchrone garantit que l'interface utilisateur n'est pas bloquée. JavaScript est largement utilisé dans l'interaction Web, les applications à une page et le développement côté serveur, améliorant considérablement la flexibilité de l'expérience utilisateur et du développement multiplateforme.

Comment fusionner les éléments du tableau avec le même ID dans un seul objet en utilisant JavaScript? Comment fusionner les éléments du tableau avec le même ID dans un seul objet en utilisant JavaScript? Apr 04, 2025 pm 05:09 PM

Comment fusionner les éléments du tableau avec le même ID dans un seul objet en JavaScript? Lors du traitement des données, nous rencontrons souvent la nécessité d'avoir le même ID ...

Comment réaliser des effets de défilement de parallaxe et d'animation des éléments, comme le site officiel de Shiseido?
ou:
Comment pouvons-nous réaliser l'effet d'animation accompagné d'un défilement de page comme le site officiel de Shiseido? Comment réaliser des effets de défilement de parallaxe et d'animation des éléments, comme le site officiel de Shiseido? ou: Comment pouvons-nous réaliser l'effet d'animation accompagné d'un défilement de page comme le site officiel de Shiseido? Apr 04, 2025 pm 05:36 PM

La discussion sur la réalisation des effets de défilement de parallaxe et d'animation des éléments dans cet article explorera comment réaliser le site officiel de Shiseido (https://www.shiseido.co.jp/sb/wonderland/) ...

JavaScript est-il difficile à apprendre? JavaScript est-il difficile à apprendre? Apr 03, 2025 am 12:20 AM

Apprendre JavaScript n'est pas difficile, mais c'est difficile. 1) Comprendre les concepts de base tels que les variables, les types de données, les fonctions, etc. 2) Master la programmation asynchrone et les implémenter via des boucles d'événements. 3) Utilisez les opérations DOM et promettez de gérer les demandes asynchrones. 4) Évitez les erreurs courantes et utilisez des techniques de débogage. 5) Optimiser les performances et suivre les meilleures pratiques.

Comment implémenter la fonction de glisser-déposer et de régler la fonction de réglage similaire à VScode dans le développement frontal? Comment implémenter la fonction de glisser-déposer et de régler la fonction de réglage similaire à VScode dans le développement frontal? Apr 04, 2025 pm 02:06 PM

Explorez la mise en œuvre de la fonction de glisser et de réglage du panneau de type VScode dans le frontal. Dans le développement frontal, comment implémenter un VScode comme ...

La différence dans Console.Log de sortie Résultat: Pourquoi les deux appels sont-ils différents? La différence dans Console.Log de sortie Résultat: Pourquoi les deux appels sont-ils différents? Apr 04, 2025 pm 05:12 PM

Discussion approfondie des causes profondes de la différence de sortie Console.log. Cet article analysera les différences dans les résultats de sortie de la fonction Console.log dans un morceau de code et expliquera les raisons derrière. � ...

See all articles