私は最近、次のコードに出くわした:JavaScriptの数値の自己平等
function baseClamp(number, lower, upper) {
if (number === number) {
if (upper !== undefined) {
number = number <= upper ? number : upper;
}
if (lower !== undefined) {
number = number >= lower ? number : lower;
}
}
return number;
}
条件を関数の先頭には、興味深いものです。
if (number === number) {
私はChromeで次のようにテストした:
var number = undefined;
number === number
true
number = null
number === number
true
number = NaN
number === number
false
number === number
は単にNaNのために確認するか、そこにもっとあるでしょうか?
これは確かに 'NaN'をチェックします。 isNaNはちょっと...壊れているので、これは最も簡単なチェックの1つです。 – vlaz
[通常、NaNとNaNをNaNと比較すると、つまり、double equalsまたはtriple equalsのいずれかを使用すると、IEEE 754によればfalseと評価されます。](https://developer.mozilla.org/en-US/docs/Web/JavaScript/ Equality_comparisons_and_sameness) – Xotic750
私はこれが(提供された投稿の)重複であることに同意しません。回答は重複するかもしれませんが、質問は全く異なって言います。 http://blog.stackoverflow.com/2010/11/dr-strangedupe-or-how-i-learned-to-stop-worrying-and-love-duplication/を参照してください。検索エンジンを使用してその特定のタイトルを見ると、他の質問をクリックすることはほとんどありません。交換の – Hakkar