使用||和{}初始化javascript变量
javascript variable initialization using || and {}
你能解释一下下面的问题吗?
var lib = lib || {};
我们需要什么时候做?我不知道为什么lib
再次被使用。
如果变量lib
具有falsy
(null
、false
、0
、undefined
、''
、NaN
)值,则分配空({}
)对象。你也可以像这个一样重写你的例子
var lib;
if (!lib) {
lib = {}
}
此语句的目的是确保lib
是一个truthy值,或者是一个空对象。
它用于许多函数初始化代码中,其中参数可能不会由调用方传递。
但必须注意的是,lib
可能是true
,并且在该语句之后将保持为true
,而不是被空对象替换。
JavaScript具有以下错误值
- 虚假的
- 0(零)
- "(空字符串)
- null
- 未定义的
- NaN(不是数字)
现在,如果你有类似的东西:
var foo = function(lib){
lib = lib || {};
console.log(lib);
}
调用不带参数的foo(导致lib未定义)或使用上面列出的参数之一将lib打印为对象(因为{}是一个truthy值)。
如果初始化了lib
变量-var lib = lib;
,如果未初始化-var lib = {};
{}
-为空对象。
如果lib被设置并且不是null、false、undefined。。。那么新内容就是lib之前的内容。但如果不是这样,lib将变成一个空对象。
相关文章:
- 将函数的上下文应用于javascript变量
- 如何通过ajax刷新JSF填充的javascript变量
- Javascript变量赋值|
- 限制javascript变量的最小/最大整数
- 来自文本输入null的html javascript变量
- 访问jsrender模板中的全局javascript变量并更新它
- 从数据库中获取数据并插入JavaScript变量
- 如何将javascript变量传递到Meteor Spacebars模板中
- 将JavaScript变量保存到Rails模型
- 在if语句下的html中使用javascript变量
- Javascript变量分配-按类别
- 操作javascript变量[HTML]以只显示文本
- 无法比较javascript变量
- 如何将smarty变量与javascript变量进行比较
- 如何使用PHP将javascript变量添加到mysql数据库中
- Javascript 变量使用 jquery 查找变量
- 重新加载页面时Javascript变量发生变化
- 在asp classic中使用javascript变量
- 全局Javascript变量变为null
- 如何向服务器端提交javascript变量