JavaScript学习笔记(二十三)——es6数值

es6新增——数值

(1)数值的表示
  • 二进制表示法新写法: 前缀 0b 或 0B 。
console.log(0b11 === 3); // true
console.log(0B11 === 3); // true
  • 八进制表示法新写法: 前缀 0o 或 0O 。
console.log(0o11 === 9); // true
console.log(0O11 === 9); // true
(2)方法
  • Number.isFinite():用于检查一个数值是否为有限的( finite ),即不是 Infinity

    console.log( Number.isFinite(1));   // true
    console.log( Number.isFinite(0.1)); // true 
    
    • NaN 不是有限的
    console.log( Number.isFinite(NaN)); // false
     
    console.log( Number.isFinite(Infinity));  // false
    console.log( Number.isFinite(-Infinity)); // false
    
    • Number.isFinate 没有隐式的 Number() 类型转换,所有非数值都返回 false
    console.log( Number.isFinite('foo')); // false
    console.log( Number.isFinite('15'));  // false
    console.log( Number.isFinite(true));  // false
    
  • **Number.isNaN()**用于检查一个值是否为 NaN 。

    console.log(Number.isNaN(NaN));      // true
    console.log(Number.isNaN('true'/0)); // true
    

    在全局的 isNaN() 中,以上皆返回 true,因为在判断前会将非数值向数值转换

    Number.isNaN("NaN");      // false
    Number.isNaN(undefined);  // false
    Number.isNaN({});         // false
    Number.isNaN("true");     // false
    

    而 Number.isNaN() 不存在隐式的 Number() 类型转换,非 NaN 全部返回 false

  • Number.parseInt()从全局移植到 Number 对象的方法,逐步减少全局方法,用于全局变量的模块化。方法的行为没有发生改变。

    • 不指定进制时默认为 10 进制
    Number.parseInt('12.34'); // 12
    Number.parseInt(12.34);   // 12
    
    • 指定进制
    Number.parseInt('0011',2); // 3
    
    • 与全局的 parseInt() 函数是同一个函数
    Number.parseInt === parseInt; // true
    Number.parseFloat()
    
    • 用于把一个字符串解析成浮点数。
    Number.parseFloat('123.45')    // 123.45
    Number.parseFloat('123.45abc') // 123.45
    
    • 无法被解析成浮点数,则返回 NaN
    Number.parseFloat('abc') // NaN
    
    • 与全局的 parseFloat() 方法是同一个方法
    Number.parseFloat === parseFloat // true
    Number.isInteger()
    
    • 用于判断给定的参数是否为整数。
    Number.isInteger(value)
    Number.isInteger(0); // true
    
    • JavaScript 内部,整数和浮点数采用的是同样的储存方法,因此 1 与 1.0 被视为相同的值
    Number.isInteger(1);   // true
    Number.isInteger(1.0); // true
     
    Number.isInteger(1.1);     // false
    Number.isInteger(Math.PI); // false
    
    • NaN 和正负 Infinity 不是整数
    Number.isInteger(NaN);       // false
    Number.isInteger(Infinity);  // false
    Number.isInteger(-Infinity); // false
     
    Number.isInteger("10");  // false
    Number.isInteger(true);  // false
    Number.isInteger(false); // false
    Number.isInteger([1]);   // false
    
    • 数值的精度超过 53 个二进制位时,由于第 54 位及后面的位被丢弃,会产生误判
    Number.isInteger(1.0000000000000001) // true
    
    • 一个数值的绝对值小于 Number.MIN_VALUE(5E-324),即小于 JavaScript 能够分辨的最小值,会被自动转为 0,也会产生误判
    Number.isInteger(5E-324); // false
    Number.isInteger(5E-325); // true
    Number.isSafeInteger()
    
    • 用于判断数值是否在安全范围内。
    Number.isSafeInteger(Number.MIN_SAFE_INTEGER - 1); // false
    Number.isSafeInteger(Number.MAX_SAFE_INTEGER + 1); // false
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值