这样做
const bool = true;
const a = 2 + true ? 3 : 0;
const b = 2 + false ? 3 : 0;
给了我a = 3
和b = 0
。为什么忽略2 +
?
答案 0 :(得分:1)
尝试这样写:
//如果所需的输出是a = 5且b = 2
const a = 2 + (true ? 3 : 0);
const b = 2 + (false ? 3 : 0;);
答案 1 :(得分:0)
为什么忽略2 +?
不是。给出:
2 + true ? 3 : 0;
首先评估2 + true
。由于 2 是一个数字,+
被视为加法, true 被强制为数字1,结果为3.
然后?
导致3被强制为布尔 true ,因此3:0
返回3。
在第二个表达式中:
假设:
const b = 2 + false ? 3 : 0;
b 被赋值为3。