【发布时间】:2021-01-11 05:17:00
【问题描述】:
var a = '1';
console.log(a == ('2'||'1')?'hi':'hello');
这样做的条件将失败为 a = 1 。
由于此条件失败,它将 a 的值 1 与 2 进行比较。所以它总是打印你好。
有没有办法检查“||”之后的值('1')让它打印你好?
【问题讨论】:
标签: javascript conditional-operator logical-or
var a = '1';
console.log(a == ('2'||'1')?'hi':'hello');
这样做的条件将失败为 a = 1 。
由于此条件失败,它将 a 的值 1 与 2 进行比较。所以它总是打印你好。
有没有办法检查“||”之后的值('1')让它打印你好?
【问题讨论】:
标签: javascript conditional-operator logical-or
分别列出不同的可能性:
a === '2' || a === '1' ? 'hi' : 'hello'
或者使用数组和.includes:
['2', '1'].includes(a) ? 'hi' : 'hello'
('2'||'1') 的问题在于,在与a 进行比较之前,那里的整个部分都被评估为单个表达式,如果它是真实的,|| 将评估为初始值。所以('2' || '1') 解析为'2'。
【讨论】:
var a = 1; a == '2'?'hi': a=='1'?'hello' :'';
我发现这也有效....感谢使用不同方式回答的每个人..
【讨论】: