我在研究项目时发现了下面的 javascript 行:
var array = array || []; // <--- confusion here (what does || mean)
谁能告诉我为什么有人像上面一样声明数组而不是:
var array = [];
更新:得到答案后,我想出了更易读的方法来完成上述操作:
if(array == undefined)
var array = [];
我在研究项目时发现了下面的 javascript 行:
var array = array || []; // <--- confusion here (what does || mean)
谁能告诉我为什么有人像上面一样声明数组而不是:
var array = [];
更新:得到答案后,我想出了更易读的方法来完成上述操作:
if(array == undefined)
var array = [];
与 simple 的区别var array = [];
在于,如果已经存在一个值,则该值不会替换为[]
.
它有效,因为
这相当于
var array; // does nothing if array is already declared in the same scope
if (!array) array = [];
当您有模块化代码并且不想强加导入顺序时,这种结构很常见:您可能有许多以同一行开头的文件:
var myModule = myModule || {};
这是一个示例:SpaceBullet 源代码(查看 js 文件的第一行)。
这意味着:如果有一个值或数组被初始化,则将其分配给该变量,否则,将该变量初始化为一个空数组。
您将看到与 {} 类似的声明
var someObject = anObject || {};