Javascript “有没有更好的方法来执行?”;x=y?y:x";?特别是在JS中
它看起来是如此多余和丑陋。我最近经常用这个表达,肯定还有别的方法 “如果有效,则将y分配给x,否则保持x不变”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将相同 这里有一个解释 查找其他类型部分: 更新:如果您计划使
您可以通过使用逻辑
或
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=0x=y | | x
是非常地道的IMHO(就像在opts=opts | |{}
中一样)地道的Javascript方式是x=y | | x
谢谢Thilo,这看起来确实稍微好一点。关于逻辑“或”方式,请参见我对以下答案的评论。if(y)x=y代码>更容易阅读。事实上,只要y=0x=y | | x
是非常地道的IMHO(就像在opts=opts | |{}
中一样)地道的Javascript方式是x=y | | x
谢谢Thilo,这看起来确实稍微好一点。关于逻辑上的“或”方式,请参阅我对下面答案的评论。但是当它们都有效时会发生什么呢?我测试了它,它似乎选择了第一个值,我认为它是可靠的?谢谢。你可能会想,这似乎有多普遍,会有一个“|=”或什么,但当它们都有效时会发生什么?我测试了它,它似乎选择了第一个值,我认为它是可靠的?谢谢。你会想,这看起来有多普遍,会有一个“|=”或什么的