Javascript 如果变量值包含OR(| |)运算符,这意味着什么

Javascript 如果变量值包含OR(| |)运算符,这意味着什么,javascript,Javascript,我试图通过使用一些现有的代码来学习一些javascript,我遇到了这个变量定义,这是我过去没有见过的。搜索之后,我找不到解释,所以我想我会在这里发布 var colorCollection = colorCollection || {}; 有没有人能解释一下这种定义的含义以及为什么会使用它。这是将colorCollection分配给它自己的值(如果它已经存在),否则它将分配给它一个空对象 它的工作原理是这样的——在javascript中,任何变量都是真实的,这意味着您可以这样说: if (c

我试图通过使用一些现有的代码来学习一些javascript,我遇到了这个变量定义,这是我过去没有见过的。搜索之后,我找不到解释,所以我想我会在这里发布

var colorCollection = colorCollection || {};
有没有人能解释一下这种定义的含义以及为什么会使用它。

这是将colorCollection分配给它自己的值(如果它已经存在),否则它将分配给它一个空对象

它的工作原理是这样的——在javascript中,任何变量都是真实的,这意味着您可以这样说:

if (colorCollection) {
 // some code 
}
如果colorCollection有一个值,即它不是未定义、null、NaN、0或false,则If语句将为true,并且//some code中的代码将运行。| |运算符将返回第一个值(如果它是truthy),否则将返回最后一个值。这就是为什么这个有效。

也许是这个?如果colorCollection为falsy,则colorCollection将默认为{}。它通常用作JavaScript中可选函数参数的黑客攻击。或的可能副本