我最近遇到了以下代码:
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
Does number === number
只需检查 NaN 还是还有更多内容?
number === number
只是检查是否number
is not NaN
. NaN
是唯一不等于其自身的值。
number === number
可以替换为!Number.isNaN(number)
在现代浏览器中(参见MDN docs).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)