1
var a = '1';
console.log(a == ('2'||'1')?'hi':'hello');

这样做条件会失败,因为a = 1. 由于此条件失败,它将 a 的值 1 与 2 进行比较。所以它总是打印你好。有没有办法检查“||”之后的值('1')让它打印你好?

4

2 回答 2

5

分别列出不同的可能性:

a === '2' || a === '1' ? 'hi' : 'hello'

或使用数组和.includes

['2', '1'].includes(a) ? 'hi' : 'hello'

问题('2'||'1')在于,在进行比较之前,那里的整个部分都被评估为单个表达式a,并且||如果它是真实的,则将评估为初始值。所以('2' || '1')决定'2'.

于 2020-09-24T21:13:17.737 回答
0

变量 a = 1; a == '2'?'hi': a=='1'?'hello' :'';

我发现这也有效..感谢所有使用不同方式回答的人..

于 2020-09-28T20:04:17.423 回答