将三元组与and或javascript结合起来?

问题描述 投票:1回答:2

| number == 3 ? 'true 2' : 'false 2'

let number = 5
const result = number == 4 ? 'true 1' : 'false 1' || number == 3 ? 'true 2' : 'false 2'  || number == 5 ? 'true 3' : 'false 3'
console.log(result)

/ return result true 2 answer true 2 为什么可以这样?

javascript conditional-operator
2个回答
3
投票

你的语句

const result = number == 4 ? 'true 1' : 'false 1' || number == 3 ? 'true 2' : 'false 2'  || number == 5 ? 'true 3' : 'false 3'

解释为

const result = (number == 4) ? 'true 1' : ('false 1' || number == 3) ? 'true 2' : ('false 2 || number == 5) ? 'true 3' : 'false 3';

特别是,这一部分 ('false 1' || number ==3)true 因为 'false 1' 是一个非空字符串。

我不确定你在尝试什么,但请注意 ? : 最终只能有一个值:要么是第一个表达式的值,要么是第二个表达式的值。因此,那些 'false n' 字符串真的没有任何意义:无论是哪一个条件测试的 number 将会是真的,或者都不会是真的。

© www.soinside.com 2019 - 2024. All rights reserved.