javascript - 赋值返回的值

标签 javascript assignment-operator

为什么常规赋值语句(例如,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/

相关文章:

r - R 函数内部赋值运算符 ('=' 和 '<-' 的行为

javascript - 如何创建两个不同的微调器 jquery?

javascript - 如何在javascript中使用shift + click?

javascript - HTML,CSS 复选框标签位置应在复选框之上

javascript - d3js v5 调整分组条形图大小

c++:转换运算符与赋值运算符与转换构造函数优先级

javascript - 为用户解析 beforeDelete

c++ - 默认赋值运算符适合 Vector 吗?

C++ 复制构造函数/赋值运算符错误

分配时的 JavaScript 评估顺序