为什么常规赋值语句(例如,x = 5
)返回分配的值(在本例中为 5
),而赋值结合变量声明( var x = 5
) 返回 undefined
?
我通过在 Chrome 浏览器的 Javascript 控制台中执行这些语句获得了返回值:
> var x = 5;
undefined
> y = 5;
5
最佳答案
这就是语言的设计方式。它与大多数语言一致。
让变量声明返回除 undefined
之外的任何内容是没有意义的,因为您永远不能在表达式上下文中使用 var
关键字。
将赋值设为 expression
而不是 statement
当您想一次将多个变量设置为相同的值时很有用:
x = y = z = 2;
也可以这样使用:
x = 2*(y = z); // Set y = z, and x = 2*z
然而,这不是最易读的代码,它可能会更好地写成:
y = z;
x = 2*z;
关于javascript - 赋值返回的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16027247/