2013-10-15 101 views
3

爲什麼我可以在.push()函數裏面做if else shorthand函數?像if else else array .push()

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

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

我需要插入null如果變量是不確定的。

爲什麼我不能使用test||null裏面.push()函數?

+0

你的第一個例子導致一個錯誤,這就是爲什麼沒有任何反應。請看看控制檯。 – Teemu

回答

1

是的。您可以使用

arr.push(test||null); 

如果您定義了測試。爲什麼你的第二個代碼工作?

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

它的工作原理是因爲您定義了測試。

所以,這個工作

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

這應該是正確的答案。 –

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

謝謝,Ahhhh我看起來更長的版本,但工作:P – l2aelba

+1

你的代碼將工作,如果你定義測試,就像@MC ND在他的答案中說的。 –