条件文に出くわしましたが、理解が困難です。次のようになります (右側の - 記号に注意してください+
)。
obj.length === +obj.length
.
この条件とその目的/構文を説明できますか?
ステートメントを (知らず知らずのうちに) 見ると、ある種の汚いハックであるという印象を引き起こしますが、underscore.jsはかなり適切に設計されたライブラリであることはほぼ確実なので、より良い説明があるはずです。
バックグラウンド
- このステートメントは、underscore.jsライブラリ ( underscore.js 注釈付きソース) の一部の関数で使用されていることがわかりました。
- 私の推測では、この条件ステートメントは、変数
obj
が配列型であることのテストに何らかの形で関連しているということですか? (しかし、私は完全に確信が持てません)。このコードを使用してこれをテストしようとしました。
var myArray = [1,2,3]; testResult1 = myArray.length === +myArray.length; console.log( testResult1 ); // true を出力します var myObject = { foo : "somestring", bar : 123 }; testResult2 = myObject.length === +myObject.length; console.log( testResult2 ); // false を出力します