for (let i = 0; i < 2; i ++){
console.log('inner',i);
}
console.log('**************');
i =-1;
if(i < 2) {
console.log('inner',i);
i = i +1;
if(i < 2){
console.log('inner',i);
i = i +1;
if(i < 2){
console.log('inner',i);
i = i +1;
} else {
return ;
}
} else {
return ;
}
}
Der obige Code ist korrekt.Warum ist das `i` nicht in Javascript ES6 definiert?
Dies ist das Ergebnis.
inner 0
inner 1
**************
inner -1
inner 0
inner 1
Wenn ich den folgenden Code schrieb, tritt dieser Fehler auf.
Die für
Der Fehler
console.log('inner',i);
^ ReferenceError: i is not defined
for (let i = 0; i < 2; i ++){
console.log('inner',i); // i is not defined
let i = 100;
}
console.log('**************');
i =-1;
if(i < 2) {
console.log('inner',i); // i is not defined
let i = 100;
i = i +1;
if(i < 2){
console.log('inner',i);
i = i +1;
if(i < 2){
console.log('inner',i);
i = i +1;
} else {
return ;
}
} else {
return ;
}
}
'let' hat einen Block Umfang, so dass ich diese Erklärung erraten nach der Anmeldung kommt, so dass undifined wird. – Jai
Wenn Sie von Javascript und den ECMA-Standards sprechen, ist es wichtig, die Implementierung zu beachten. Was verwenden Sie, um das Javascript auszuführen? (Ist es webbasiert? Können wir Chrome mit V8 erwarten? Verwenden wir Rhino?) –
Dies könnte helfen: http://stackoverflow.com/questions/762011/let-keyword-vs-var-keyword – Rajesh