【发布时间】:2013-05-24 17:24:22
【问题描述】:
var foo, bar;
if (foo = true) {
console.log('I am so true!');
}
if (bar = false) {
console.log('Why am I not being logged?');
}
当我这样做时,也在 JavaScript 控制台上
var test;
test = 'I will be printed'
字符串将被打印/返回。
在 JavaScript 中,赋值操作返回分配的值。这种行为是根据 ECMAScript 标准还是只是实现?这种行为与c 等其他语言不同,这背后有什么意图吗?如果是,是什么?
【问题讨论】:
-
@harsha 问题是“赋值运算符返回什么”。不是“比较运算符返回什么。”
-
@0xc0de 您是否真的尝试过自己进行控制台记录以查看返回的内容?
-
@Zenith:是的,也许我应该编辑问题以删除“什么”并只保留“为什么”部分,这正是我想问的。
-
“为什么”问题的问题在于,只有设计 JS 的人才能够真正回答这个问题:Brendan Eich。
标签: javascript return-value assignment-operator