Javascript 在'之外声明不带var的变量;使用严格的';
我不明白它为什么会出错Javascript 在'之外声明不带var的变量;使用严格的';,javascript,Javascript,我不明白它为什么会出错 str='string';//str没有定义。为什么? 设str='string2'; console.log(str)您需要首先声明变量,然后使用它,这就是let的工作方式。如果您使用var关键字,它就会起作用 使用let str = 'string'; // DOES NOT WORK! here it hasn't been declared let str = 'string2'; // move this line up before the
str='string';//str没有定义。为什么?
设str='string2';
console.log(str)代码>您需要首先声明变量,然后使用它,这就是let
的工作方式。如果您使用var
关键字,它就会起作用
使用let
str = 'string'; // DOES NOT WORK! here it hasn't been declared
let str = 'string2'; // move this line up before the above line
console.log(str);
使用var
str = 'string'; // IT WORKS because of variable hoisting!
var str = 'string2';
console.log(str);
请参阅:在没有关键字的情况下进行变量声明时,JS解释器的行为如何?为什么会出现这个错误?我在FireFox中看到的实际错误是“ReferenceError
:在初始化之前无法访问词法声明str
”,这应该表明实际问题是同一块中的let
,事实上,如果您删除let str=
它可以正常工作。将let
放在第一行而不是第二行,或者干脆去掉它。您不能在初始化之前访问'str',您应该首先声明变量var str代码>