I recently came across the following code:
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;
}
The conditional at the beginning of the function is interesting.
if (number === number) {
In Chrome, I tested the following:
var number = undefined;
number === number
true
number = null
number === number
true
number = NaN
number === number
false
Does it check number === numberfor NaN or is there more?
source
share