Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用三元运算符实现“else”中的多重效果_Javascript - Fatal编程技术网

Javascript 使用三元运算符实现“else”中的多重效果

Javascript 使用三元运算符实现“else”中的多重效果,javascript,Javascript,我有Java脚本中的下一个条件: if(a==10){ getName() getLastName() } 我想用三元运算符写这段代码 这不是三元运算符(接受三个操作数的运算符),而是&&,它是一个二元运算符(接受两个操作数的运算符)。JavaScript中目前唯一的三元运算符是条件运算符(condition?valueIfTruthy:valueIfFalsy) 问题是,当您将事物与&&组合时,只有在左侧操作数的值为truthy时,才会计算右侧操作数。我猜getName返回的是错误的东西,这

我有Java脚本中的下一个条件:

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
,则不会改变这一点)