If else 数组中的简写 .push()

l2a*_*lba 5 javascript arrays if-statement push array-push

为什么我可以做if else shorthand内部.push()功能?喜欢

var arr = [];
arr.push(test||null);
// nothing
Run Code Online (Sandbox Code Playgroud)

var arr = [];
var test = test||null;
arr.push(test);
// [null]
Run Code Online (Sandbox Code Playgroud)

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

为什么我不能使用test||null内部.push()函数?

MC *_* ND 2

是的。您可以使用

arr.push(test||null);
Run Code Online (Sandbox Code Playgroud)

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

var arr = [];
var test = test||null;
arr.push(test);
// [null]
Run Code Online (Sandbox Code Playgroud)

它之所以有效,是因为您已经定义了测试。

所以,这有效

var test;
var arr = [];
arr.push(test||null);
Run Code Online (Sandbox Code Playgroud)