我对浏览器控制台中局部变量和全局变量的区别有一点疑问,当我输入var a = 5
并在Chrome浏览器控制台中按Enter键时,它返回undefined但是当我键入a = 5
时没有返回任何内容。
答案 0 :(得分:4)
这与本地变量和全局变量无关。只是控制台告诉你的是声明的结果。 var
个语句没有结果,因此您会看到undefined
。赋值语句 1 do 具有结果(指定的值),因此您可以看到该值。
如果你做了
var a = 5;
a
...您看到undefined
后跟5
。
1 从技术上讲,它是一个包含赋值表达式的表达式语句。
答案 1 :(得分:0)
根据我的理解,当您编写a=5
时,这将创建一个全局变量。所以它将成为window
对象的一部分。因此,你得到它的价值。
执行var a = 5
时,将创建一个新变量(引用),然后设置值。因此,您将获得undefined
。
您甚至可以尝试使用以下代码进行测试。
var a = {};
a.b = 5;
这将返回5
而不是undefined
。