JavaScript数值自等式 [英] JavaScript numeric self equality

查看:61
本文介绍了JavaScript数值自等式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我最近遇到了以下代码:

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) {

我在Chrome中测试了以下内容:

I tested the following in Chrome:

var number = undefined;
number === number
true
number = null
number === number
true
number = NaN
number === number
false

number ===数字只是检查NaN还是更多?

Does number === number simply check for NaN or is there more to it?

推荐答案

number ===数字仅检查 number 是否不是 NaN . NaN 是唯一不等于其自身的值.

number === number simply checks if number is not NaN. NaN is the only value which is not equal to itself.

number ===数字可以替换为!Number.isNaN(number)(请参阅

number === number can be replaced with !Number.isNaN(number) in modern browsers (see MDN docs).

这篇关于JavaScript数值自等式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆