据我所知,'let'用于声明块变量。但它不能用相同的名称声明两次。例如:如何理解'for'语句中的'let'?
'use strict';
let a = 1;
let a = 2; // syntax error
那么如何在'for'迭代中用相同的变量名来区分每个作用域呢?
'use strict';
for(let i = 0; i < 3; i++){
setTimeout(function(){
console.log(i);
});
}
// output:
// 0
// 1
// 2
剂量解释器默默地改变变量名吗?任何信息将不胜感激。
我不认为是一个重复的问题。因为我真的想问的是两种理论之间的冲突。
我不认为是重复的。我想知道两个原则之间的冲突。 – JamesYin
您可以尝试在[通天REPL(https://babeljs.io/repl/#?babili=false&evaluate=true&lineWrap=false&presets=es2015%2Creact%2Cstage-0&targets=&browsers=&builtIns=false&debug=false&code_lz=GYewTgFANgpgLgAgJYILwIAwG5kIDwIDMOSA1KQJQDeAsAFAKMIDO8AKkgLYwgCucEYLwB2AYzhIQwiNXpN5CUVOYhYAOiggA5hCQUscpgF999I0A运行代码)了解它是如何工作的。 –