前几天我发现了一段我很好奇的代码片段,但我不太确定它到底是做什么的;
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
复制相似问题