如果在数组内部使用简写.push()

时间:2013-10-15 08:01:49

标签: javascript arrays if-statement push array-push

为什么我可以在if else shorthand函数内.push()执行此操作?像

var arr = [];
arr.push(test||null);
// nothing

但是

var arr = [];
var test = test||null;
arr.push(test);
// [null]

如果变量未定义,我需要插入null

为什么我无法在test||null函数中使用.push()

2 个答案:

答案 0 :(得分:3)

arr.push(typeof(test) == "undefined" ? null: test);

答案 1 :(得分:1)

是。你可以使用

arr.push(test||null);

如果你定义测试。为什么你的第二个代码有效?

var arr = [];
var test = test||null;
arr.push(test);
// [null]

它正在工作,因为你已经定义了测试。

所以,这是有效的

var test;
var arr = [];
arr.push(test||null);