javascript变量初始化使用||和{}

时间:2015-11-05 08:28:42

标签: javascript

你能解释一下吗?

var lib = lib || {};

我们什么时候需要这样做?我不知道为什么再次使用lib

5 个答案:

答案 0 :(得分:2)

如果变量libfalsynullfalse0undefined'',{{1然后赋值为空(NaN)对象。您也可以像这样重写您的示例

{}

答案 1 :(得分:1)

此声明的目的是确保lib是一个真值,或者是一个空对象。

它在许多函数初始化代码中使用,其中参数可能不被调用者传递。

必须注意,lib可能是true,并且在此语句之后将保留true,而不是被空对象替换。

答案 2 :(得分:1)

JavaScript具有以下假值

  • 0(零)
  • “”(空字符串)
  • 未定义
  • NaN(不是数字)

现在,如果你有例如:

var foo = function(lib){
    lib = lib || {};
    console.log(lib);
}

调用不带参数的foo(导致lib未定义)或上面列出的一个将打印lib作为对象(因为{}是一个真值)。

答案 3 :(得分:0)

如果lib变量已初始化 - var lib = lib;,如果不是,则var lib = {}; {} - 是一个空对象。

答案 4 :(得分:0)

如果设置了lib而不是null,则为false,undefined ......然后新内容就是之前的lib。但如果不是这样,lib将成为一个空对象。