本教程将深入探讨 JavaScript 三元运算符的语法及其常见用法。
JavaScript 三元运算符(也称为条件运算符)用于执行内联条件检查,替代 if...else
语句。它使代码更简洁易读,可根据条件为变量赋值或执行表达式。
要点
if…else if…else
语句。if…else
语句来提高代码可读性,但过度使用嵌套三元运算符会使代码难以阅读。还应注意,三元运算符需要真值分支和假值分支。语法
三元运算符接受三个操作数;这是 JavaScript 中唯一一个这样做的运算符。您提供一个要测试的条件,后跟一个问号,后跟用冒号分隔的两个表达式。如果条件被认为是真值,则执行第一个表达式;如果条件被认为是假值,则执行最终表达式。
其使用格式如下:
condition ? expr1 : expr2
其中,condition
是要测试的条件。如果其值为真值,则执行 expr1
。否则,如果其值为假值,则执行 expr2
。
expr1
和 expr2
可以是任何类型的表达式。它们可以是变量、函数调用,甚至是其他条件。
例如:
1 > 2 ? console.log("You are right") : console.log('You are wrong');
使用三元运算符进行值赋值
三元运算符最常见的用例之一是确定要为变量赋值的值。变量的值通常取决于另一个变量或条件的值。
虽然可以使用 if...else
语句来实现这一点,但这会使代码更长、更难读。例如:
const numbers = [1,2,3]; let message; if (numbers.length > 2) { message = 'The numbers array is too long'; } else { message = 'The numbers array is short'; } console.log(message); // "The numbers array is too long"
在此代码示例中,首先定义变量 message
。然后,使用 if...else
语句确定变量的值。
可以使用三元运算符在一行中简单地完成此操作:
const numbers = [1,2,3]; let message = numbers.length > 2 ? 'The numbers array is too long' : 'The numbers array is short'; console.log(message); // "The numbers array is too long"
使用三元运算符执行表达式
三元运算符可用于执行任何类型的表达式。
例如,如果要根据变量的值确定要运行哪个函数,可以使用 if...else
语句执行此操作:
if (feedback === "yes") { sayThankYou(); } else { saySorry(); }
可以使用三元运算符在一行中完成此操作:
condition ? expr1 : expr2
如果 feedback
的值为 "yes",则将调用并执行 sayThankYou
函数。否则,将调用并执行 saySorry
函数。
使用三元运算符进行空值检查
在许多情况下,您可能正在处理可能已定义值也可能未定义值的变量——例如,从用户输入检索结果时,或从服务器检索数据时。
使用三元运算符,您可以通过将变量名放在条件操作数的位置来检查变量是否不为 null 或 undefined。
当变量是对象时,这尤其有用。如果您尝试访问实际上为 null 或 undefined 的对象的属性,则会发生错误。首先检查对象是否已设置可以帮助您避免错误。
例如:
1 > 2 ? console.log("You are right") : console.log('You are wrong');
在此代码块的第一部分中,book
是一个具有两个属性(name
和 author
)的对象。当对 book
使用三元运算符时,它会检查它是否不为 null 或 undefined。如果不是——这意味着它有值——则访问 name
属性并将其记录到控制台中。否则,如果它为 null,则改为将 "No book" 记录到控制台中。
由于 book
不为 null,因此书名将记录在控制台中。但是,在第二部分中,当应用相同的条件时,三元运算符中的条件将失败,因为 book
为 null。因此,控制台中将记录“No book”。
嵌套条件
虽然三元运算符用于内联,但多个条件可以用作三元运算符表达式的部分。您可以嵌套或链接多个条件来执行类似于 if...else if...else
语句的条件检查。
例如,变量的值可能取决于多个条件。可以使用 if...else if...else
来实现:
const numbers = [1,2,3]; let message; if (numbers.length > 2) { message = 'The numbers array is too long'; } else { message = 'The numbers array is short'; } console.log(message); // "The numbers array is too long"
在此代码块中,您测试 score
变量上的多个条件以确定变量的字母等级。
可以使用三元运算符执行相同的条件,如下所示:
const numbers = [1,2,3]; let message = numbers.length > 2 ? 'The numbers array is too long' : 'The numbers array is short'; console.log(message); // "The numbers array is too long"
首先评估第一个条件,即 score >= 90
。
这将一直持续到所有条件都为假,这意味着 grade
的值为 'F',或者直到其中一个条件被评估为真,并且其真值被赋给 grade
。
结论
如本教程中的示例所示,JavaScript 三元运算符有许多用例。在许多情况下,三元运算符可以通过替换冗长的 if...else
语句来提高代码的可读性。
(后续内容,例如FAQ部分,由于篇幅过长,建议根据需要单独处理。)
以上是快速提示:如何在JavaScript中使用三元操作员的详细内容。更多信息请关注PHP中文网其他相关文章!