2014-09-25 86 views
8

檢查myvar javascript variable === false的最佳方法是什麼?(也可能未定義)。檢查變量是否爲假,但不是真或不確定

if (myvar === false) 

將被罰款,但myvar它可能是不確定的。只有false的值是可以接受的,而不是未定義的。

任何短於if (typeof myvar !== "undefined" && myvar === false)

+0

*僅*'FALSE'或'undefined',或者你只是尋找任何 「falsy」 值,這將只是'如果(MYVAR)...'? – adeneo 2014-09-25 19:37:59

+0

你應該工作得很好,或者如果你真的想明確,那麼'if((myvar === false)&&(myvar!== undefined)){' – PlantTheIdea 2014-09-25 19:38:53

回答

17

如果變量是聲明則:

if (myvar === false) { 

將正常工作。 ===將不會考慮false未定義。

如果是undefined未聲明,那麼您應該在嘗試使用它之前檢查它的類型(否則您將得到一個引用錯誤)。

if(typeof myvar === 'boolean' && myvar === false) { 

也就是說,如果您打算嘗試使用該變量,則應確保始終聲明該變量。

var myvar; 
// ... 
// some code that may or may not assign a value to myvar 
// ... 
if (myvar === false) { 
1

if (myvar !== undefined && myvar === false)怎麼樣?

+0

'undefined'可以重新定義爲其他值,所以你應該總是使用'typeof'或者定義一個本地'undefined'。 – 2014-09-25 19:39:25

+0

@Derek朕會功夫不再適用於現代瀏覽器。 – 2014-09-25 19:41:15

+0

@IngoBürk - 互聯網上的大多數用戶沒有現代瀏覽器,特別是商業環境中的電腦。 – 2014-09-25 19:42:34

1
if(typeof myvar === 'boolean' && !myvar) 
相關問題