前几天我发现了一段我很好奇的代码片段,但我不太确定它到底是做什么的;
options = options || {};
到目前为止,我的想法是:如果存在,则将变量options
设置为值options
,如果不存在,则设置为空对象。
是/不是?
发布于 2010-05-18 01:51:07
这对于设置函数参数的默认值很有用,例如:
function test (options) {
options = options || {};
}
如果在不带参数的情况下调用test
,options
将被初始化为空对象。
如果第一个操作数为falsy,则逻辑OR ||
运算符将返回第二个操作数。
Falsy值包括:0
、null
、undefined
、空字符串(""
)、NaN
,当然还有false
。
ES6更新:现在,自从ES6以来,我们已经有了真正的default parameter values。
function test (options = {}) {
//...
}
如果在不带参数的情况下调用函数,或者使用值undefined
显式调用函数,则options
参数将采用默认值。与||
运算符示例不同,其他falsy值不会导致使用默认值。
发布于 2010-05-18 01:51:43
是。示例等同于:
if (options) {
options = options;
} else {
options = {};
}
OR运算符(||
)将短路并返回第一个真值。
发布于 2010-05-18 01:51:10
是的,这就是它所做的。
https://stackoverflow.com/questions/2851404
复制相似问题