我有一个关于为函数内部变量设置默认值的问题。我知道有几篇关于如何执行此操作的帖子,但是我对这种替代方法感兴趣,以及是否有人可以向我解释使用它的优点/缺点,特别是当 JSBIN 编译器标记错误时...
Line 2: void 0 === data && (data = 20); --- Expected an assignment or function call and instead saw an expression.
新/替代方法
var a = function(data) {
void 0 === data && ( data = 20 );
return data;
};
使用typeof运算符的当前方法
var b = function(data) {
data = typeof data === "undefined" ? data = 30 : data;
return data;
};
最佳答案
我从来没有见过这样写的,我怀疑它会成功。开发人员过去常常使用 void 0
来代替 undefined
,因为 undefined 曾经是 window 对象的可写属性。对于较新的浏览器,这种情况已经很久没有出现了。你现在这样写的唯一原因是为了抚慰你自己,并感觉自己比其他可能不知道 void 0 背后含义的人优越。
关于设置默认函数变量值的 JavaScript 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23543073/