为什么控制台中的变量声明会返回"未定义"?

Aqu*_*tar 5 firebug

我使用的是最新的Firefox(4.0.1)和Firebug(1.7.2).

每当我在控制台中输入变量声明时,都会返回斜体"未定义"警告.

例如,如果我输入"var x = 5;" 然后响应是"未定义",而不是"5".

之后,如果我在控制台中输入"x",则返回正确的值5.然而,错误/警告有点令人讨厌,我真的想知道原因和解决方案,如果我是唯一遇到此问题的人.

有趣的是,如果我不使用"var"但只是使用"x = 5"声明值,则表明正确的行为,并在控制台中返回"5".

小智 4

(这只是一个猜测,我不是 Javascript 语言规则细节或 Firebug 的专家。)

控制台给您的反馈是对您输入的行进行评估的结果。我认为声明 var x = ...是一个没有值的语句,而简单赋值( x = ...) 是一个符合 C 传统和函数式语言“一切都是表达式”态度的表达式,其计算结果为指定的值。

  • 你是对的;具体来说,[声明语句根据规范的第 12.2 节不返回任何内容,而赋值表达式根据第 11.13.1 节返回指定的值](http://stackoverflow.com/a/13180929/201952)。 (2认同)