当我从浏览器控制台(Chrome和Firefox)运行简单的javascript代码时,我发现了一种让我感到困惑的现象。
我打字时说
>var a = "a"
浏览器将返回一个字符串
>"undefined"
但如果我只是输入
>a = "a"
浏览器将返回字符串
>"a"
为什么会这样?
答案 0 :(得分:4)
如果你写
alert(var a = 'a')
您收到语法错误,var
是javascript语法的一部分,它不会返回任何内容。
然而,a = 'a'
部分确实会返回一些内容。
您可以执行var a = b = c = d = 'e';
d = 'e'
会返回e
,它会被送入真正c=d
的{{1}},等等。一旦到达var,它就会停止返回值。
如果您输入c = 'e'
,则表示未定义。 var a;
基本上只是var a = 'b'
答案 1 :(得分:3)
控制台显示已计算表达式的结果。声明变量并使用
同时分配变量var a = 'a'
不返回任何内容,因此您获得 undefined 。分配部分的结果
b = 'b'
返回值,因此您可以在控制台中看到它。
var a = b = c = d = 'foo';
返回未定义,但已设置了几个变量。表达式的真正目的是定义变量的范围,设置值只是一些简写。