首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Javascript中,"var FOO = FOO || {}“(为该变量分配一个变量或一个空对象)是什么意思?

在Javascript中,"var FOO = FOO || {}“(为该变量分配一个变量或一个空对象)是什么意思?
EN

Stack Overflow用户
提问于 2011-06-22 20:10:57
回答 4查看 19.9K关注 0票数 102

在查看在线源代码时,我在几个源文件的顶部偶然发现了这一点。

代码语言:javascript
复制
var FOO = FOO || {};
FOO.Bar = …;

但我不知道|| {}是做什么的。

我知道{}等同于new Object(),我认为||类似于“如果它已经存在,则使用它的值,否则使用新对象”。

为什么我会在源文件的顶部看到这个?

EN

回答 4

Stack Overflow用户

发布于 2011-06-22 20:15:09

代码语言:javascript
复制
var AEROTWIST = AEROTWIST || {};

基本上,这一行的意思是将AEROTWIST变量设置为AEROTWIST变量的值,或者将其设置为空对象。

双管道||是一条OR语句,只有当第一部分返回false时,才会执行OR的第二部分。

因此,如果AEROTWIST已经有一个值,它将被保留为该值,但是如果它以前没有被设置过,那么它将被设置为一个空对象。

这基本上等同于这样说:

代码语言:javascript
复制
if(!AEROTWIST) {var AEROTWIST={};}

希望这能有所帮助。

票数 25
EN

Stack Overflow用户

发布于 2011-11-19 00:57:08

||的另一个常见用法是为未定义的函数参数设置默认值:

代码语言:javascript
复制
function display(a) {
  a = a || 'default'; // here we set the default value of a to be 'default'
  console.log(a);
}

// we call display without providing a parameter
display(); // this will log 'default'
display('test'); // this will log 'test' to the console

其他编程中的等价物通常是:

代码语言:javascript
复制
function display(a = 'default') {
  // ...
}
票数 7
EN

Stack Overflow用户

发布于 2011-06-22 20:13:07

如果AEROTWIST中没有值,或者AEROTWIST为null或未定义,则分配给新AEROTWIST的值将为{} (空白对象)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6439579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档