Heim  >  Artikel  >  Web-Frontend  >  js-Notizen

js-Notizen

不言
不言Original
2018-04-26 14:31:201258Durchsuche

Dieser Artikel teilt Ihnen einige JS-Notizen mit.

1 JS wird einmal vorkompiliert. a); // undefiniert
Auf diese Weise ist die Bedeutung der Frage sehr klar: Deklarieren Sie zuerst a und bestimmen Sie dann, ob a existiert. Wenn es nicht existiert, weisen Sie es 1 zu.

Offensichtlich ein Testament immer im Fenster vorhanden ist, wird diese Zuweisungsanweisung nie ausgeführt, daher ist das Ergebnis undefiniert.
var a; 
if (!(“a” in window)) { 
   a = 1; 
}


2. Die Funktionsdeklaration überschreibt die Variablendeklaration, aber nicht die Variablenzuweisung

So schnell wie möglich. Die Variablendeklaration ist unten definiert, aber der Variablenwert ist immer noch eine Funktion, was bedeutet, dass in diesem Fall die Priorität der
-Funktionsdeklaration höher ist als die Priorität der Variablendeklaration, aber wenn der Variablenwert vorhanden ist Wird ein Wert zugewiesen, ist das Ergebnis völlig anders:

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


Nachdem der Wert zugewiesen wurde, überschreibt die Initialisierung der Variablenzuweisung die Funktionsdeklaration.

function value(){ 
   return 1; 
} 
var value = 1; 
alert(typeof value);    //”number”
Flache Kopie kopiert nur den Basistyp von Daten. Bei Arrays oder Objekten wird nur die Speicheradresse kopiert, sodass die Möglichkeit besteht, dass das Metaobjekt manipuliert wird 🎜>


1. JS wird vorkompiliert


Auf diese Weise ist die Bedeutung der Frage sehr klar: Deklarieren Sie zuerst a und bestimmen Sie dann, ob a existiert. Wenn es nicht existiert, ist die Zuweisung 1.
function copy(p) { 
   let c = {}; 
   for(let i in p) { 
       c[i] = p[i]; 
   } 
   return c; 
}
Es ist offensichtlich, dass a immer im Fenster vorhanden ist. Diese Zuweisungsanweisung wird niemals ausgeführt, daher ist das Ergebnis undefiniert.


2. Die Funktionsdeklaration überschreibt die Variablendeklaration, aber nicht die Variablenzuweisung
var a; 
if (!(“a” in window)) { 
   a = 1; 
} 
alert(a); // undefined



So schnell wie möglich. Die Variablendeklaration ist unten definiert, aber der Variablenwert ist immer noch eine Funktion, was bedeutet, dass in diesem Fall die Priorität der

-Funktionsdeklaration höher ist als die Priorität der Variablendeklaration, aber wenn der Variablenwert vorhanden ist Wird ein Wert zugewiesen, ist das Ergebnis völlig anders:


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

Nachdem der Wert zugewiesen wurde, überschreibt die Initialisierung der Variablenzuweisung die Funktionsdeklaration.

Flache Kopie kopiert nur den Basistyp von Daten. Bei Arrays oder Objekten wird nur die Speicheradresse kopiert, sodass die Möglichkeit besteht, dass das Metaobjekt manipuliert wird 🎜>
function value(){ 
   return 1; 
} 
var value = 1; 
alert(typeof value);    //”number”

Verwandte Empfehlungen:

Teilen einer anderen Art, js zu schreiben


function copy(p) { 
   let c = {}; 
   for(let i in p) { 
       c[i] = p[i]; 
   } 
   return c; 
}
Detaillierte Erläuterung der js-Implementierung von Fuzzy-Abfragebeispielen

Das obige ist der detaillierte Inhalt vonjs-Notizen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn