#你不知道的javascript中卷#(4)整数的安全范围 整数检测 NaN

1、数字的范围:

最大整数是:2^53 - 1, 即9007199254740991,在ES6中的定义是,Number.MAX_SAFE_INTEGER

最小整数是:-9007199254740991,在ES6中的定义是,Number.MIN_SAFE_INTEGER

2、检测一个值是不是整数,可以使用ES6中的Number.isInteger()方法

Number.isInteger(42) // true
Number.isInteger(42.00) // true
Number.isInteger(42.02) // false

3、NaN

3.1、一般定义:如果数学运算的操作数不是数字类型(或者无法解析为常规的十进制或十六进制数字),就无法返回一个有效的数字,这种情况下的返回值就是NaN

3.2、NaN不是一个数字,将它理解为无效数值,可能会更准确一点

3.3、换句话来说就是,NaN是一个不是数字的数字

例子为:

var c = 3 / 'foo'
console.log(c) // NaN
但是
console.log(typeof(c) === 'number')  // true

所以说NaN是一个不是数字的数字,比较绕口

3.4、检查一个变量的值是否为NaN,不可以如同null、undefined一样,因为NaN是一个特殊值,它和本身不相等,是唯一一个非自反

console.log(undefined === undefined) // true
console.log(null === null) // true
NaN是非自反
console.log(NaN === NaN) // false
console.log(NaN != NaN) // true

所以我们只能通过其他方式进行判断

(1):isNaN判断方法(有弊端)

一般正常的判断为:

var c = 3 / 'foo'
console.log(isNaN(c)) // true

结果是对的

但是:

var d = 'foo'
console.log(isNaN(d))  // true

很明显, 'foo'不是一个数字,但是也绝不是NaN

(2):Number.isNaN判断方法(比较好用)

var c = 3 / 'foo'
console.log(Number.isNaN(c))  // true
var d = 'foo'
console.log(Number.isNaN(d)) // false

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值