This question already exists:
In Javascript, what does it mean when there is a logical operator in a variable declaration? [duplicate]
                        
                                6年前关闭。
            
                    
如果未定义新值,这是更新变量并保留原始值的合法方法吗?

variable = NEWVAR || variable;


我创建了一个Fiddle,到目前为止看起来还不错,但是我不想得到任何讨厌的惊喜。

这是一个测试案例:

var test = "hello";

test = undefined || test;

alert('"' + test + '"');

最佳答案

我会说,是的,我经常使用它。但是你要记住

道格拉斯·克罗克福德(Douglas Crockford):《 JavaScript的精髓》(第40页)


  ||如果第一个操作数为真,则运算符将产生其第一个操作数的值。否则,它会产生
  第二个操作数的值。


因此,如果NEWVAR包含任何伪造的(falsenullundefinedNaN0"")值,则将评估第二个操作数。

只要您知道这一点,就可以始终使用||运算符获取默认值

道格拉斯·克罗克福德(Douglas Crockford):《 JavaScript的精髓》(第51页)


  ||运算符可用于填写默认值:


var middle = stooge["middle-name"] || "(none)";
var status = flight.status || "unknown";

10-04 23:36
查看更多