Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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 “有没有更好的方法来执行?”;x=y?y:x";?特别是在JS中_Javascript_Ternary Operator - Fatal编程技术网

Javascript “有没有更好的方法来执行?”;x=y?y:x";?特别是在JS中

Javascript “有没有更好的方法来执行?”;x=y?y:x";?特别是在JS中,javascript,ternary-operator,Javascript,Ternary Operator,它看起来是如此多余和丑陋。我最近经常用这个表达,肯定还有别的方法 “如果有效,则将y分配给x,否则保持x不变” 您可以通过使用逻辑或 x = y || x; 如果y为truthy,x将在赋值后等于y 否则x将相同 这里有一个解释 查找其他类型部分: 更新:如果您计划使用逐位运算符来执行此操作,请注意,它只适用于32位整数来交换上述x和y等值。您可以使用逻辑或 x = y || x; 如果y为truthy,x将在赋值后等于y 否则x将相同 这里有一个解释 查找其他类型部分: 更新:如果您计划使

它看起来是如此多余和丑陋。我最近经常用这个表达,肯定还有别的方法

“如果有效,则将y分配给x,否则保持x不变”


您可以通过使用逻辑

x = y || x;
如果
y
truthy
x
将在赋值后等于y

否则
x
将相同

这里有一个解释

查找其他类型部分:


更新:如果您计划使用逐位运算符来执行此操作,请注意,它只适用于32位整数来交换上述
x
y
等值。

您可以使用逻辑

x = y || x;
如果
y
truthy
x
将在赋值后等于y

否则
x
将相同

这里有一个解释

查找其他类型部分:


更新:如果您计划使用逐位运算符来执行此操作,请注意,它仅适用于32位整数来交换上述
x
y
等值。

如果(y)x=y更容易阅读。事实上,只要y=0
x=y | | x
是非常地道的IMHO(就像在
opts=opts | |{}
中一样)地道的Javascript方式是
x=y | | x
谢谢Thilo,这看起来确实稍微好一点。关于逻辑“或”方式,请参见我对以下答案的评论。
if(y)x=y更容易阅读。事实上,只要y=0
x=y | | x
是非常地道的IMHO(就像在
opts=opts | |{}
中一样)地道的Javascript方式是
x=y | | x
谢谢Thilo,这看起来确实稍微好一点。关于逻辑上的“或”方式,请参阅我对下面答案的评论。但是当它们都有效时会发生什么呢?我测试了它,它似乎选择了第一个值,我认为它是可靠的?谢谢。你可能会想,这似乎有多普遍,会有一个“|=”或什么,但当它们都有效时会发生什么?我测试了它,它似乎选择了第一个值,我认为它是可靠的?谢谢。你会想,这看起来有多普遍,会有一个“|=”或什么的