Maison >interface Web >js tutoriel >Conseil rapide: comment fonctionnent les références JavaScript
Concepts clés:
undefined
, null
, symbole) et pas-by-référence pour les types de composés (objets et tableaux). L'opérateur typeof
détermine la méthode d'attribution. En bref: Le comportement de référence de JavaScript diffère considérablement des langues avec des pointeurs explicites. Seules les structures de données composées sont transmises par référence.
Terminologie:
Remarque: les types scalaires de JavaScript sont des primitives, contrairement à certaines langues (comme Ruby) avec des types de référence scalaire. Les valeurs primitives de JavaScript sont immuables, tandis que les valeurs composées sont mutables.
Cet article a été initialement publié sur Medium.
Résumé des points clés:
typeof
détermine si une valeur est attribuée par valeur ou par référence. Exemples:
Pass-by-Value (primitives):
<code class="language-javascript">let batman = 7; let superman = batman; //assign-by-value superman++; console.log(batman); //7 console.log(superman); //8</code>
pass-by-référence (valeurs composées):
<code class="language-javascript">let flash = [8, 8, 8]; let quicksilver = flash; //assign-by-reference quicksilver.push(0); console.log(flash); //[8, 8, 8, 0] console.log(quicksilver); //[8, 8, 8, 0]</code>
Création de nouvelles références:
La réaffectation d'une valeur composée crée une nouvelle référence:
<code class="language-javascript">let firestorm = [3, 6, 3]; let atom = firestorm; //assign-by-reference atom = [9, 0, 9]; //value is reassigned (creates new reference) console.log(firestorm); //[3, 6, 3] console.log(atom); //[9, 0, 9]</code>
Références dans les fonctions:
<code class="language-javascript">let batman = 7; let superman = batman; //assign-by-value superman++; console.log(batman); //7 console.log(superman); //8</code>
Modification de la valeur du composé d'origine dans une fonction:
<code class="language-javascript">let flash = [8, 8, 8]; let quicksilver = flash; //assign-by-reference quicksilver.push(0); console.log(flash); //[8, 8, 8, 0] console.log(quicksilver); //[8, 8, 8, 0]</code>
Création d'une copie superficielle:
<code class="language-javascript">let firestorm = [3, 6, 3]; let atom = firestorm; //assign-by-reference atom = [9, 0, 9]; //value is reassigned (creates new reference) console.log(firestorm); //[3, 6, 3] console.log(atom); //[9, 0, 9]</code>
attribuer des primitives par référence (utilisant des objets):
<code class="language-javascript">let magneto = [8, 4, 8]; (function(x) { //IIFE x.push(99); x = [1, 4, 1]; //reassign variable (creates new reference) x.push(88); })(magneto); console.log(magneto); //[8, 4, 8, 99]</code>
Conclusion:
Comprendre le système de référence de JavaScript est crucial pour écrire un code efficace et sans bug.
(la section FAQS omise par la concision, mais pourrait être reconnu en fonction des besoins.)
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!