我无法理解javascript中的let声明。 当我将变量分配给语法错误(并给出错误)时,它仍然声明该变量。但是我无法更改值或访问它。例如:
let test = abc; //reference error: abc not defined. Expected
let test = 5; //syntax error: test already "declare"
test = 5; //reference error: test not defined
alert(test); //reference error: test not defined
因此,即使代码发生错误,该变量仍被声明且不可更改?
答案 0 :(得分:0)
第一个let test
试图创建一个全局范围的变量名test.
解释器看到了对新变量的请求并为其提供了空间,看到了变量的名称并对其进行了标记,然后看到了初始值,然后说:“等等:abc
无关紧要!”并忽略分配。
您可以将let varname = value;
看作实际上是两个命令:
let varname;
然后
let varname = value;
您可以通过查看控制台中的let the_var;
来实例化名为undefined value
的{{1}}变量来进行测试。