Der Zweck ist, dass eine Variable nicht zugewiesen wird, sie kann direkt zugewiesen werden und der Umfang der Variablen kann nicht geändert werden.
Wenn nicht erklärt, klären Sie es neu.
Ich habe online gesucht und festgestellt, dass die gemeinsame Methode ist, wenn (typeof (a) == 'undefiniert') {var a = 'ss';},
Diese Methode kehrt jedoch für nicht deklarierte oder nicht zugewiesene Variablen zurück. Und wenn ja:
Die Codekopie lautet wie folgt:
var a;
Funktion f () {
if (typeof (a) == 'undefiniert')
{var a = 1;}
}
F();
console.log (a);
Undefiniert wird angezeigt, weil f () nur eine lokale Variable mit demselben Namen deklariert wird.
Wenn es sich jedoch um eine Variable handelt, die nicht zugewiesen wurde: if (novaluev == null), wird es wahr zurückkehren;
Nicht deklarierte Variable: if (nodeclarev == null) wird ein Fehler gemeldet.
So kann es sein:
Die Codekopie lautet wie folgt:
Funktion f () {
if (typeof (v) == 'undefined') {
versuchen{
if (v == null) // Geben Sie an, dass V nicht zugewiesen ist
v = 1; // Wenn V eine globale Variable ist, wird es seinen Umfang nicht ändern
}
fangen (err) {// Geben Sie an, dass V nicht deklariert ist
var v; v = 2;
}
}
console.log (v);
}
F( );
Dies ist auch falsch, da JS das Merkmal des „Deklarierens des Fortschritts“ hat, dh die in der Funktion deklarierten Variablen sind in dieser Funktion und in der Unterfunktion dieser Funktion sichtbar, unabhängig davon, wo sie in der Funktion deklariert ist.
Aufgrund der oben genannten var v;, in jedem Fall, versuchen Sie es nur.
Ändern Sie es:
Die Codekopie lautet wie folgt:
Funktion f () {
if (typeof (v) == 'undefined') {
versuchen{
if (v == null) // Geben Sie an, dass V nicht zugewiesen ist
v = 1; // Wenn V eine globale Variable ist, wird es seinen Umfang nicht ändern
}
fangen (err) {// Geben Sie an, dass V nicht deklariert ist
eval ('var v'); v = 2;
}
}
console.log (v);
}
F( );
Das ist alles.
Als Urteilsfunktion geschrieben, bedeutet die Rückgabe von "Nodeclare", dass die Variable nicht deklariert wird, "Novalue" bedeutet, dass die Variable nicht zugewiesen wurde und "HasValue" bedeutet, dass die Variable zugewiesen wurde:
Die Codekopie lautet wie folgt:
Funktion f (v) {
if (typeof (v) == 'undefined') {
versuchen{
if (v == null)
zurück 'novalue';
}
catch (err) {
zurück 'nodeclare';
}
}
sonst kehre 'HasValue' zurück;
}
var a;
console.log (f (a));
a = 0;
console.log (f (a));
console.log (f (b));
Es ist wieder falsch ..... es wird einen Fehler geben, wenn trsole.log (f (b)); ...