use*_*336 5 javascript var function ecmascript-6
为什么我可以多次声明 var?我预计会出现错误。
\n\n此代码会引发错误:
\n\nlet a =\xc2\xa0true;\nlet a =\xc2\xa0false;\nRun Code Online (Sandbox Code Playgroud)\n\n未捕获的语法错误:标识符“a”已被声明
\n\n为什么这不会引发错误?
\n\nvar b =\xc2\xa0true;\nvar b =\xc2\xa0false;\nRun Code Online (Sandbox Code Playgroud)\n\n预期:未捕获语法错误:标识符“b”已被声明
\n这是因为有变量提升 with var,但没有 with let(或const就此而言)。
因此,这意味着每次使用 时var,它基本上都会取消之前的操作,因为对于 JavaScript 解释器来说,您的第一个代码如下所示:
var b;
b = true;
b = false;
Run Code Online (Sandbox Code Playgroud)
但这不适用于letor ,const因为letandconst是块作用域,而var是函数作用域。
| 归档时间: |
|
| 查看次数: |
2199 次 |
| 最近记录: |