2

Underscore.js の _.each 実装でこのコード行に出くわしました。ここで何が起こっているのか興味があります。obj の前の「+」は何をしますか?

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

4

1 に答える 1

1

数値ではなくであるifテスト。右辺は常に数値です (または、数値として解釈できない場合)。も数字の場合、左側のみになります。obj.lengthNaNNaNobj.length===obj.length

が数値に見える文字列のisNaN場合、 using は機能しないことに注意してください。obj.lengthつまり、 をisNan("3")返しますfalseNaN === NaNis falseNaNは決して===何にもならないことにも注意してください。

于 2013-02-19T06:29:19.073 に答える