2

重複の可能性: javascript:javascriptの変数obj.length ===+obj.lengthの
前のプラス記号

underscore.jsのソースを見ていると、この行に出くわしました(#79)

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

ここで何が起こっているのか100%確信が持てませんが、obj.length値の前の「+」の目的を誰かが説明できますか?次のように読んだだけで、比較は同じになりますか?

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

同じタイプの比較がunderscore.jsで複数回行われるため、タイプミスではないと確信しています。

誰かが私に記事を指摘したり、正しい用語を私に投げたりすることができれば、私はそれをいただければ幸いです:)。ありがとう!

4

1 に答える 1

5

lengthプロパティが数値かどうかをチェックしています。単項演算+が適用されると、オブジェクトまたはの数値表現が返されますNaN。これは、比較が成功または失敗する基準になります。最初のケースでは、プロパティobjがない場合は、を返します。が数値の場合、条件は合格です。length+undefinedNaNobj.length

于 2013-01-01T05:39:18.583 に答える