假设我们有一个函数的可选参数,它可以作为undefined
。
options || (options = {});
和
options = options || {};
?如果没有,哪一个你找到更好(我的意思是更快或更可读)?问题是 - 您将使用哪一个在javascript中实现可选参数?
答案 0 :(得分:0)
确切的2行是不同的:
在第一个表达式中,表达式对选项没有任何作用(如果没有定义),而另一个是声明。
答案 1 :(得分:0)
从逻辑上讲,它们都是一样的。
options || (options = {});
如果options
是Truthy值,那么它将短路并且不会转到下一部分。如果它是一个Falsy值,它将转到下一个部分,其中创建了空对象并将其分配给options
。
options = options || {};
同样的事情,第一个右侧被评估。如果options
是Truthy,则会按原样分配给options
,如果它是Falsy,则会创建一个空对象并将其分配给options
。
注意:如果options
是函数的可选参数,并且它可以接受其他Falsy值,即使用户有意地传递Falsy值,例如{{1} },0,false
,它仍将使用空对象