为什么浏览器返回undefined?

时间:2014-02-03 01:31:33

标签: javascript

当我从浏览器控制台(Chrome和Firefox)运行简单的javascript代码时,我发现了一种让我感到困惑的现象。

我打字时说

>var a = "a"

浏览器将返回一个字符串

>"undefined"

但如果我只是输入

>a = "a"

浏览器将返回字符串

>"a"

为什么会这样?

2 个答案:

答案 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';

返回未定义,但已设置了几个变量。表达式的真正目的是定义变量的范围,设置值只是一些简写。