Javascript VAR语法

时间:2011-08-23 14:20:32

标签: javascript

这在var定义中意味着什么:

var array = array || [];

... javascript的下两部分相互相等?

var array = array || [];
array.push([1],[2]);
array.push([3]);

=

var array = array.push([1],[2],[3]) || [];

5 个答案:

答案 0 :(得分:2)

相当于此,

var array;
if(array){
  array = array;
} else {
  array = [];
}

只是缩短形式。

在第二部分中,没有两个不相等。

array.push([1],[2],[3])

无论如何都需要执行,如果你使用|| []则不会被添加。

换句话说,你从这开始,

var array;
if(array){
  array = array;
} else {
  array = [];
}
array.push([1],[2],[3]);

然后你修改了它,

var array;
if(array){
  array = array;
  array.push([1],[2],[3]);
} else {
  array = [];
}

答案 1 :(得分:2)

第一个语句会将array设置为空数组(如果它是假值(nullundefined等)。

接下来的两个部分不相等,当你试图在一个不知道是数组的东西上调用push时,它可能会失败。

答案 2 :(得分:1)

如果未定义var,则将var设置为新数组。

答案 3 :(得分:1)

这意味着如果数组是一个假值(undefinednull等) - 将分配给var array的值是一个空数组 - {{1} };

编辑:

问题的第二部分 - 这些不等同。

例如,当数组为[]时:

undefined

这将引发异常。

此:

var array = array.push([1],[2],[3]) || [];

不会。

答案 4 :(得分:1)

该语法使用javascript boolean or运算符,并对truthy / falsey语句进行评估,以提供有效的默认值。

所以

var array = array || [];

表示“如果array评估为假,则使用空数组”。