变量声明
下文是JavaScript中声明变量的不同方法。
注释与console.log
足够说明这里发生了什么:
1 | var y, x = y = 1 //== var x; var y; x = y = 1 |
首先,我们只设置了两个变量。并没有很多。
1 | ;(() => { |
正如你所看到的,代码只改变了全局的y
,因为我们在闭包里并没有声明此变量。
1 | ;(() => { |
现在我们用var
声明了两个变量。意味着他们仅在闭包内有作用。
1 | ;(() => { |
两个变量都使用var
声明了而且在之后又给它们赋值。由于local > global
,闭包内声明了x
和y
,意味着闭包内是无法访问全局的x
和y
的。
1 | x = 5 // == x = 5 |
最后一行的结果是很明显的。
你可以在这里测试并看到结果 感谢babel.
更多相关内容请看MDN.
特别感谢@kurtextrem的合作 :)!
原文作者: anhr
原文链接: http://yoursite.com/2019/11/04/javascript/2016-02-16-basics-declarations/
版权声明: 转载请注明出处(必须保留原文作者署名原文链接)