var a = '1';
console.log(a == ('2'||'1')?'hi':'hello');
这样做条件会失败,因为a = 1
. 由于此条件失败,它将 a 的值 1 与 2 进行比较。所以它总是打印你好。有没有办法检查“||”之后的值('1')让它打印你好?
var a = '1';
console.log(a == ('2'||'1')?'hi':'hello');
这样做条件会失败,因为a = 1
. 由于此条件失败,它将 a 的值 1 与 2 进行比较。所以它总是打印你好。有没有办法检查“||”之后的值('1')让它打印你好?
分别列出不同的可能性:
a === '2' || a === '1' ? 'hi' : 'hello'
或使用数组和.includes
:
['2', '1'].includes(a) ? 'hi' : 'hello'
问题('2'||'1')
在于,在进行比较之前,那里的整个部分都被评估为单个表达式a
,并且||
如果它是真实的,则将评估为初始值。所以('2' || '1')
决定'2'
.
变量 a = 1; a == '2'?'hi': a=='1'?'hello' :'';
我发现这也有效..感谢所有使用不同方式回答的人..