2011-08-09 101 views
1

爲什麼JavaScript中的空字符串的計算結果爲false?我知道道格拉斯·克羅克福德發話了不少關於truthy並在JavaScript falsy但是這仍然讓我大吃一驚:在Javascript中,空字符串的計算結果爲false的原因是什麼

if("") 
    alert("you will never see this"); 

任何人都知道這種行爲的基礎是什麼。根據ECMAScript規範,它是以這種方式實現的嗎?我很好奇。

回答

6

因爲它沒有任何內容。空字符串在許多語言中都是錯誤的值。這是根據規範的標準。

如果參數是空字符串(其長度爲零),則結果爲false; 否則結果爲真

- 部分的Ecma-262

+0

9.2如何解釋'「」 ===假;'是假的呢? – KooiInc

+2

因爲'==='的意思是它不會進行類型轉換,而大多數false值不是'false'('false'是一個假值,即'false')。 – Quentin

+0

@KooiInc:嚴格比較也檢查類型。一個字符串不是一個布爾值,因此它們不相等。 –

相關問題