什么" || {}"表示JavaScript文件的开头

时间:2016-11-28 03:11:40

标签: javascript

我正在查看一些JavaScript文件。他们中的一些人在开始时有一些有趣的东西:

var something = something || {};

其中"某事"显然是一种可变的名字。这是什么意思,它有什么作用?事实上,一个文件就有这个,没有别的。

2 个答案:

答案 0 :(得分:6)

这是确保变量存在的常见模式,如果不存在,则将其设置为已知的初始值,以便以后使用。特别是:

  • 如果变量something已经有一个非假的值,则该行保持变量的值不变。

  • 如果此变量something没有值,或者是假的,则此行会将变量的值设置为{}

在脚本中向对象添加属性时,您会看到很多这种模式。假设你为Acme公司工作,你有很多脚本文件可以与其他人的代码集成。 Acme对象将具有一堆属性和一堆函数。在某些脚本中,您可能希望向对象添加属性。但你不能只说

Acme.TIMEOUT = 300;

位于文件顶部,因为该变量可能不存在。但如果确实存在,则需要使用现有变量。如果没有,则需要先创建一个新对象。

所以

var Acme = Acme || {};

将保证它存在,然后你可以使用它。

但要小心这一点。我不喜欢这种模式,因为在现代JavaScript中(我们使用letconst而不是var),拥有未定义的变量将导致抛出错误。你应该说:

window.Acme = window.Acme || {};

如果您在浏览器中。这样做的原因是它表明Acmewindow对象的属性。引用对象的不存在的属性是无害的,您只需获得undefined。但引用一个不存在的变量会在现代JavaScript中引发错误(如果没有,它应该)。

答案 1 :(得分:0)

"""的一个默认值变量。 因此,如果某些内容未初始化,它最终将包含一个空白对象({})。

换句话说,某些东西等于(sometging或{}),其中undefined的计算结果为false,因此返回{}。