在“使用严格”之外声明没有var的变量

时间:2019-05-28 16:05:55

标签: javascript

我不明白为什么会引发错误

str = 'string'; // str is not defined. Why?
let str = 'string2';

console.log(str);

我认为声明没有关键字的变量会使它看起来像var。但事实并非如此。

1 个答案:

答案 0 :(得分:2)

您需要先声明变量,然后使用它,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);

请参阅:What's the difference between using "let" and "var"?