这个问题在这里已有答案:
在chrome Developer工具中,当我输入时 a = 3 log 3但var a = 3 log undefined。
为什么第一个语句返回3而不是第二个?
因为就是这样。
从var
开始的声明是一个声明。声明本身并不具有价值。他们告诉计算机做某事(创建一个变量,可选择一些初始值)。
但是赋值表达式是不同的。 a = b
评估(或“拥有”)a
的新值,以便允许链接,例如a = b = c = d
。
他们能不能让var a = b
成为一种表达并对其进行评估?当然可能。但是以这种方式屠杀语言语法绝对没有用。
阅读有关编程语言中的语句和表达式的信息。
因为undefined
是var
声明的结果。
语句实际上没有可以在代码中使用的“结果”,但程序有最终结果,并且控制台中的单行代码被评估为程序。