快速提示:如何在JavaScript中使用三元操作符

    Dianne佩纳
    分享

    在本教程中,我们将探索JavaScript中三元操作符的语法及其一些常用用法。

    三元运算符(也称为条件运算符)可用于执行内联条件检查,而不是使用如果其他……语句。它使代码更短,可读性更强。它可用于根据条件为变量赋值,或根据条件执行表达式。

    语法

    三元操作符接受三个操作数;这是唯一的JavaScript操作符这样做。您提供一个要测试的条件,后面跟着一个问号,后面跟着用冒号分隔的两个表达式。如果认为条件为真(真相),执行第一个表达式;如果它被认为是false,则执行最后一个表达式。

    它的使用格式如下:

    条件?expr1:expr2

    在这里,条件是要测试的条件。如果认为其值为真正的expr1是执行。否则,如果认为其值为expr2是执行。

    expr1而且expr2是任何一种表达。它们可以是变量、函数调用,甚至是其他条件。

    例如:

    1>2?控制台日志“你是对的”:控制台日志“你错了”

    使用三元运算符赋值

    三元操作符最常见的用例之一是决定将哪个值赋给变量。通常,一个变量的值可能取决于另一个变量或条件的值。

    虽然这可以使用如果其他……语句,它会使代码更长,可读性更差。例如:

    常量数字123.消息如果数字长度>2消息“数字数组太长”其他的消息“数字数组很短”控制台日志消息// "数字数组太长"

    在这个代码示例中,首先定义变量消息.然后,你使用如果其他……语句来确定变量的值。

    这可以在一行中使用三元操作符简单地完成:

    常量数字123.消息数字长度>2?“数字数组太长”:“数字数组很短”控制台日志消息// "数字数组太长"

    使用三元运算符执行表达式

    三元运算符可用于执行任何类型的表达式。

    例如,如果要根据变量的值决定运行哪个函数,可以使用如果其他……声明:

    如果反馈= = =“是的”sayThankYou其他的saySorry

    这可以在一行中使用三元操作符完成:

    反馈= = =“是的”?sayThankYou:saySorry

    如果反馈有价值是的,则sayThankYou函数将被调用并执行。否则,saySorry函数将被调用并执行。

    使用三元运算符进行空检查

    在许多情况下,您可能要处理的变量可能具有定义值,也可能没有定义值——例如,从用户输入检索结果时,或者从服务器检索数据时。

    使用三元操作符,可以检查一个变量是否为非三元操作符未定义的只要将变量名传递到条件操作数的位置。

    当变量为时,这尤其有用对象.如果你试图访问一个对象的属性未定义的,则会出现错误。首先检查实际设置的对象可以帮助您避免错误。

    例如:

    的名字:“艾玛”作者:“简·奥斯丁”控制台日志?的名字:没有一本书的/ /“艾玛”控制台日志?的名字:没有一本书的// "没有书"

    在代码块的第一部分,对象是否具有两个属性-的名字而且作者.上使用三元运算符时,它会检查它是不是未定义的.如果它不是——这意味着它有一个值——那的名字属性被访问并登录到控制台。否则,如果它为空,没有一本书而是登录到控制台。

    不是时,在控制台中记录图书的名称。然而,在第二部分中,当应用相同的条件时,三元运算符中的条件将失败,因为.因此,“No book”将登录到控制台。

    嵌套条件

    虽然三元运算符被内联使用,但多重条件可作为三元运算符表达式的一部分使用。可以嵌套或链接多个条件,以执行类似的条件检查如果其他……如果其他……语句。

    例如,一个变量的值可能依赖于多个条件。它可以使用如果其他……如果其他……:

    分数“67”年级如果分数<50年级“F”其他的如果分数<70年级' D '其他的如果分数<80年级“C”其他的如果分数<90年级“B”其他的年级“一个”控制台日志年级/ /“D”

    上的多个条件进行测试分数变量来确定字母分级的变量。

    这些相同的条件可以使用三元运算符执行,如下所示:

    分数“67”年级分数<50?“F”:分数<70?' D ':分数<80?“C”:分数<90?“B”:“一个”控制台日志年级/ /“D”

    第一个条件是得分< 50.如果它是真正的的值年级F.如果它是,则对第二个表达式求值,即得分< 70分

    这个过程一直持续,直到所有条件都满足,这意味着等级的值将为一个,或直到其中一个条件被计算为真正的它的真实价值被赋予年级

    CodePen例子

    在这个现场示例中,您可以测试三元运算符如何处理多个条件。

    如果您输入的值小于100,则会显示“Too Low”。如果输入的值大于100,则会显示“Too High”。输入100,将显示“Perfect”。

    看钢笔
    JS中的三元运算符
    由Si必威西盟体育网页登录tePoint (@必威西盟体育网页登录SitePoint
    CodePen

    结论

    正如本教程示例中所解释的,JavaScript中的三元运算符有很多用例。在许多情况下,三元操作符可以通过替换long来增加代码的可读性如果其他……语句。

    相关阅读:

    Baidu