2014-09-21 63 views
1

我明白,如果值不爲空,不確定的大,NaN,空字符串( 「」),0,或假對於所有的Falsy值,是否(!value)評估爲真?

if(value) { 

}

將評估爲真但確實 if (! value) {} 如果值爲null,undefined,NaN,空字符串(「」),0或false,則評估爲true?

我使用的是Google腳本,我從電子表格中獲取數據,其中某些單元格爲空白。對於這些單元格,我想確保該值返回爲「空字符串」,而不是其他任何其他可能性,例如(未定義),例如(有些正在返回'undefined',這是我尋求這個答案的原因)。

我想使用此代碼,只要它做什麼,我認爲它的作用:

if (! value) {value = ""} 

(PS我開始在這個線程:Is there a standard function to check for null, undefined, or blank variables in JavaScript?,但答案沒有解決相反的情況)

回答

1

總之,

強迫或投用負!和雙重否定!!這將關閉所有falsey值false和所有其他值true爲布爾值,那麼就請檢查是否它真的還是假的知道他們是布爾值。

所以,換句話說,如果你想在相反的布爾值,只是如果你想實際值的布爾前面加上!,前置!!

!"" === true; //inverted 
!!"" === false;//actual 
0

是的,那些將評估爲true:

if(!NaN){console.log('true!');} 
true! 
if(!undefined){console.log('true!');} 
true! 
if(!null){console.log('true!');} 
true! 
if(!''){console.log('true!');} 
true! 
if(!0){console.log('true!');} 
true!