JS 中为什么三元运算符不是条件运算符
在我们的关于一元、二元和三元运算符的文章中,我们解释说:
- 一元运算符需要一个操作数
- 二元运算符需要两个操作数
- 三元运算符需要三个操作数
我还提到这些类别不仅适用于 JavaScript,还适用于一般的编程语言。
一元运算符的一个例子是 typeof
,它只需要一个操作数。
对于二元运算符,一个例子是算术加 +
运算符,它需要两个操作数(一个在操作数之前,另一个在操作数之后)来执行求和运算。
虽然一元和二元运算符下面有几个示例,但只有一个运算符被归类为三元运算符:条件运算符。 这就是混乱的来源。
条件运算符需要三个操作数:
condition ? truthyExpression : falsyExpression
condition
是第一个操作数,truthyExpression
是第二个,falsyExpression
是第三个。
许多人(包括我自己,直到最近)之所以将三元运算符称为条件运算符,是因为条件运算符是 JavaScript(以及其他一些语言)中唯一的三元运算符。
但这里要注意的一件事是,在其他一些编程语言(目前存在或将来会存在)中,可能会有更多三元运算符的例子。
所以重点是“三元运算符不是条件运算符”。 更好的说法是:“条件运算符是三元运算符”。 条件运算符需要三个操作数,这意味着它属于三元类别。
总结
本文的目的不是说“永远不要说三元运算符是条件运算符”。 你仍然可以保持这样认为,每个开发人员都可能会理解你在说什么。
这篇文章的目的是告诉你,“从字面上看”,这种说法是不正确的,尽管它被广泛使用。
更好的说法(我将学习从今以后开始说)是“条件运算符是 JavaScript 中的三元运算符”
相关文章
Do you understand JavaScript closures?
发布时间:2025/02/21 浏览次数:108 分类:JavaScript
-
The function of a closure can be inferred from its name, suggesting that it is related to the concept of scope. A closure itself is a core concept in JavaScript, and being a core concept, it is naturally also a difficult one.
Do you know about the hidden traps in variables in JavaScript?
发布时间:2025/02/21 浏览次数:178 分类:JavaScript
-
Whether you're just starting to learn JavaScript or have been using it for a long time, I believe you'll encounter some traps related to JavaScript variable scope. The goal is to identify these traps before you fall into them, in order to av
How much do you know about the Prototype Chain?
发布时间:2025/02/21 浏览次数:150 分类:JavaScript
-
The prototype chain can be considered one of the core features of JavaScript, and certainly one of its more challenging aspects. If you've learned other object-oriented programming languages, you may find it somewhat confusing when you start
如何在 JavaScript 中合并两个数组而不出现重复的情况
发布时间:2024/03/23 浏览次数:86 分类:JavaScript
-
本教程介绍了如何在 JavaScript 中合并两个数组,以及如何删除任何重复的数组。