Maison  >  Article  >  interface Web  >  js-notes

js-notes

不言
不言original
2018-04-26 14:31:201302parcourir

Cet article partage avec vous quelques notes js. Les amis intéressés peuvent y jeter un œil

1 JS sera pré-compilé une fois

var a; 
if (!(“a” in window)) { 
   a = 1; 
}

alerte(. a); // non défini
De cette façon, le sens de la question est très clair : déclarez d'abord a, puis déterminez si a existe. S'il n'existe pas, attribuez-le à 1.
Évidemment, un testament. être toujours dans la fenêtre existe, cette instruction d'affectation ne sera jamais exécutée, donc le résultat n'est pas défini.

2. La déclaration de fonction écrasera la déclaration de variable, mais elle n'écrasera pas l'affectation de variable. Voir les châtaignes

function value(){ 
   return 1; 
} 
alert(typeof value);    //”function”

Dès que possible, la variable. La déclaration est définie ci-dessous, mais la valeur de la variable est toujours C'est une fonction, ce qui signifie que dans ce cas, la priorité de la déclaration de la fonction
est supérieure à la priorité de la déclaration de la variable, mais si la valeur de la variable se voit attribuer un valeur, le résultat sera complètement différent :

function value(){ 
   return 1; 
} 
var value = 1; 
alert(typeof value);    //”number”

Une fois la valeur attribuée, l'initialisation de l'affectation de variable écrase la déclaration de la fonction.

La copie superficielle copie uniquement le type de base des données. Pour les tableaux ou les objets, seule son adresse mémoire est copiée, il est donc possible que le méta-objet soit falsifié

function copy(p) { 
   let c = {}; 
   for(let i in p) { 
       c[i] = p[i]; 
   } 
   return c; 
}
1. JS sera pré-compilé


var a; 
if (!(“a” in window)) { 
   a = 1; 
} 
alert(a); // undefined
De cette façon, le sens de la question est très clair : déclarez d'abord a, puis déterminez si ; a existe. S'il n'existe pas, l'affectation est 1.

Il est évident que a existera toujours dans la fenêtre. Cette instruction d'affectation ne sera jamais exécutée, le résultat n'est donc pas défini.

2. La déclaration de fonction écrasera la déclaration de variable, mais elle n'écrasera pas l'affectation de variable. Voir les châtaignes


function value(){ 
   return 1; 
} 
alert(typeof value);    //”function”
Dès que possible, la variable. La déclaration est définie ci-dessous, mais la valeur de la variable est toujours C'est une fonction, ce qui signifie que dans ce cas, la priorité de la déclaration de la fonction

est supérieure à la priorité de la déclaration de la variable, mais si la valeur de la variable se voit attribuer un valeur, le résultat sera complètement différent :

function value(){ 
   return 1; 
} 
var value = 1; 
alert(typeof value);    //”number”

Une fois la valeur attribuée, l'initialisation de l'affectation de variable écrase la déclaration de la fonction.

La copie superficielle copie uniquement le type de base des données. Pour les tableaux ou les objets, seule son adresse mémoire est copiée, il est donc possible que le méta-objet soit falsifié


Recommandations associées :
function copy(p) { 
   let c = {}; 
   for(let i in p) { 
       c[i] = p[i]; 
   } 
   return c; 
}

Partage d'une autre façon d'écrire js

Explication détaillée de l'implémentation js d'exemples de requêtes floues

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:
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