经常在 Javascript 源码中看到 a ? b : c,但我不太理解,特意查了一下。
在JavaScript中,? 和 : 是一对运算符,它们称为”逻辑非”和” logical or”(逻辑或)。
a ? b : c 是一种 ternary 操作符,用于简化 if-else 语句。它的工作原理是:
- 如果表达式
a为false或零值,则执行并返回表达式b - 如果表达式
a不为false或零值,则执行并返回表达式c
因此,a ? b : c equivalent 的 if-else 语句是:
1 | if (a === false || a === 0) { |
这两种方式都可以实现相同的逻辑,但第一种方式使用 ternary 操作符,第二种方式使用 if-else 语句。
在 JavaScript 中,? 和 : 运算符不仅用于逻辑运算,还可以用于其他情况,比如:
a ? b : c可以用作条件表达式,用于简化 if-else 语句。a & b | c可以用作位运算,用于多重赋值。a & b ^ c也可以用作位运算。
总的来说,? 和 : 运算符是 JavaScript 中一种强大的简写工具,可以帮助提高代码效率和易读性。




