2013-01-01 224 views
1

可能重複:
javascript: plus symbol before variable
obj.length === +obj.length in javascript的Javascript比較值=== +價值

注視source of underscore.js我碰到這條線(#79)

//some stuff 
} else if (obj.length === +obj.length) { 
//do stuff 
來到

我不是100%ce這裏發生了什麼,任何人都可以在obj.length值之前解釋'+'的目的是 ?會比較 是相同的,如果它只是閱讀:

} else if (obj.length === obj.length) { 

的相同類型的比較是由多次在underscore.js,所以 我相當肯定這不是一個錯字。

如果任何人都可以指給我一篇文章,或者向我拋出一些正確的術語,我會很感激:)。謝謝!

+1

http://stackoverflow.com/questions/6682997/javascript-plus-symbol-before-variable的副本。基本上,它等價於Number()構造函數。檢查此鏈接的更多細節:http://stackoverflow.com/questions/4262174/javascript-input-numbers – jeremy

+2

完全相同:: http://stackoverflow.com/questions/9188998/obj-length-obj-length-in -javascript你甚至在發佈問題之前嘗試搜索..? –

回答

3

它正在檢查length屬性是否爲數字。當應用一元+時,它將返回對象的數字表示或NaN,這將成爲比較通過或失敗的基礎。對於第一種情況,如果obj沒有length屬性,它將爲+undefined,這將返回NaN。如果obj.length是數字,則條件將通過。