Javascript 使用三元运算符实现“else”中的多重效果
我有Java脚本中的下一个条件:Javascript 使用三元运算符实现“else”中的多重效果,javascript,Javascript,我有Java脚本中的下一个条件: if(a==10){ getName() getLastName() } 我想用三元运算符写这段代码 这不是三元运算符(接受三个操作数的运算符),而是&&,它是一个二元运算符(接受两个操作数的运算符)。JavaScript中目前唯一的三元运算符是条件运算符(condition?valueIfTruthy:valueIfFalsy) 问题是,当您将事物与&&组合时,只有在左侧操作数的值为truthy时,才会计算右侧操作数。我猜getName返回的是错误的东西,这
if(a==10){
getName()
getLastName()
}
我想用三元运算符写这段代码
这不是三元运算符(接受三个操作数的运算符),而是&&
,它是一个二元运算符(接受两个操作数的运算符)。JavaScript中目前唯一的三元运算符是条件运算符(condition?valueIfTruthy:valueIfFalsy
)
问题是,当您将事物与&&
组合时,只有在左侧操作数的值为truthy时,才会计算右侧操作数。我猜getName
返回的是错误的东西,这就是为什么不计算右操作数(getLastName
不被调用)<代码>&短路
如果,请不要重写。它非常清晰、直观,并且易于调试。它没有坏
如果要使用&&
而不是如果
,则要使用逗号运算符(二进制运算符)进行两个操作:
// Please don't do this
a === 10 && (getName(), getLastName());
逗号运算符计算其左侧操作数,丢弃结果,然后计算其右侧操作数,并将该结果作为其结果
但请再说一遍:请不要 什么返回getName
?请添加想要的结果和缺少的部分。“我想使用三元运算符编写此代码”-。另外,这不是三元条件运算符,而是AND运算符。getName
是否有可能返回空的string
。在JS中,空字符串
被视为false@AskMen返回值影响运算符&&
如何在if
语句中返回多个元素?@AskMen-这是一个完全不同的问题。如果需要从函数返回两个内容,通常使用对象或数组。(如果使用&&
而不是if
,则不会改变这一点)