This question already exists:
In Javascript, what does it mean when there is a logical operator in a variable declaration? [duplicate]
6年前关闭。
如果未定义新值,这是更新变量并保留原始值的合法方法吗?
我创建了一个Fiddle,到目前为止看起来还不错,但是我不想得到任何讨厌的惊喜。
这是一个测试案例:
6年前关闭。
如果未定义新值,这是更新变量并保留原始值的合法方法吗?
variable = NEWVAR || variable;
我创建了一个Fiddle,到目前为止看起来还不错,但是我不想得到任何讨厌的惊喜。
这是一个测试案例:
var test = "hello";
test = undefined || test;
alert('"' + test + '"');
最佳答案
我会说,是的,我经常使用它。但是你要记住
道格拉斯·克罗克福德(Douglas Crockford):《 JavaScript的精髓》(第40页)
||如果第一个操作数为真,则运算符将产生其第一个操作数的值。否则,它会产生
第二个操作数的值。
因此,如果NEWVAR
包含任何伪造的(false
,null
,undefined
,NaN
,0
,""
)值,则将评估第二个操作数。
只要您知道这一点,就可以始终使用||
运算符获取默认值
道格拉斯·克罗克福德(Douglas Crockford):《 JavaScript的精髓》(第51页)
||运算符可用于填写默认值:
var middle = stooge["middle-name"] || "(none)";
var status = flight.status || "unknown";