赋值语句返回等号右边的值,为什么声明变量的表达式总是返回undefined?
demo:
var a = 1; 返回undefined
a = 1; 返回1
一个是声明,一个是表达式。
声明语句没有返回值,或者说返回的是 ((void*)0)
,但 JS 里没有 void
,((void*)0)
和 undefined
可以认为是等价的。
表达式:
The assignment operation evaluates to the assigned value.
赋值表达式本身的值为其完成后被赋值的变量的值
REF: Assignment (=) - JavaScript | MDN (mozilla.org)