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

javascript variable initialization using || and {}

本文关键字:javascript 变量 初始化 使用      更新时间:2023-09-26

你能解释一下下面的问题吗?

var lib = lib || {};

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

如果变量lib具有falsynullfalse0undefined''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将变成一个空对象。