让变量声明但未定义Javascript

时间:2019-05-12 03:17:54

标签: javascript

我无法理解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

因此,即使代码发生错误,该变量仍被声明且不可更改?

1 个答案:

答案 0 :(得分:0)

第一个let test试图创建一个全局范围的变量名test.

解释器看到了对新变量的请求并为其提供了空间,看到了变量的名称并对其进行了标记,然后看到了初始值,然后说:“等等:abc无关紧要!”并忽略分配。

您可以将let varname = value;看作实际上是两个命令:

let varname;

然后

let varname = value;

您可以通过查看控制台中的let the_var;来实例化名为undefined value的{​​{1}}变量来进行测试。