什么是"var app = app || {};" 做?

rem*_*nny 13 javascript backbone.js

我正在查看一些Backbone.js示例,它们var app = app || {};位于所有.js文件的顶部.我理解这个的字面含义,但是它对其他一切有什么作用呢?

编辑:你真的很快.

nul*_*ity 21

它将变量定义为app空对象(如果尚未定义).

这是有效的,因为未定义的计算结果是false在Javascript中.

如果已定义,则如果它具有值为evalutes的值false(例如空字符串),则仍可将其重新定义为空对象.

  • 具体来说......如果`app`的值是假的,则将`app`定义为空对象. (3认同)

rec*_*ive 18

||如果是"truthy",javascript中的运算符将返回第一个操作数.如果不是,它将返回第二个操作数.如果app尚未分配,那将undefined是"假的".因此,如果未定义或否则为假,{}则将分配空对象app.


Kon*_*nev 5

这意味着"如果尚未定义app,则将app定义为空对象".

OR运营商JavaScript并不一定产生boolean.如果表达式的左侧产生,false那么赋值将采用表达式的右侧.