2011-11-19 53 views
7

由於人們通常使用可以在Javascript中array.length低於0?

array.length < 1 

檢查,如果數組是空的,而不是

array.length === 0 

我不知道是否有這樣的情況array.length可能低於0

+2

您的問題不完整。不要忘記排除小數長度,比如0.5;) – hugomg

+0

@missingno:我繼續並回答那個部分。 ;-) –

回答

10

沒有,根據the specification,陣列的length非負整數:

每個Array對象具有一個length屬性,其值始終爲小於2的非負整數。^ 。

檢查完全正常,兩者對所有陣列都有相同的結果。

你會發現人主張=== 0超過< 1上的表現的理由,因爲===失敗如果早期類型的操作數不匹配而<嘗試這樣做的強制類型轉換。但在這裏無關緊要;類型匹配。我知道沒有證據表明在這個用例中兩者都比另一個更快(我已經測試過它;可悲的是jsPerf已經關閉了,所以我不能發佈測試),但即使是這樣,必須按字面比較數十億次次,以查看即使是最小的真實世界影響。

+0

感謝這個偉大的答案。 – AlexMA