美文网首页
数值的拓展

数值的拓展

作者: keknei | 来源:发表于2017-07-08 23:59 被阅读7次

新增Number.isFinite() Number.isNaN()两个方法

Number.isFinite()用来检验是不是数值类型,是返回true 不是返回false

{
   console.log(Number.isFinite(4));//true
   console.log(Number.isFinite('5'));//false
   console.log(Number.isFinite(NaN));//false
   console.log(Number.isFinite(undefined));//false
   console.log(Number.isFinite(-3));//true
   console.log(Number.isFinite(8.9))//true
   console.log(Number.isFinite(function (){}));//false
   console.log(Number.isFinite(true));//false
   console.log(Number.isFinite(null));//false
   console.log(isFinite('5'));//true
}

需要注意的是isFinite('5')返回的是true,而Number.isFinite('5')返回的是false

Number.isNaN()用来检验是不是NaN,是返回true 不是返回false

{
   console.log(Number.isNaN(NaN));//true
   console.log(Number.isNaN(9/NaN));//true
   console.log(Number.isNaN('NaN'));//false
   console.log(Number.isNaN('3'/'5'));//false
   console.log(Number.isNaN('false'/'true'));//true
   console.log(isNaN('NaN'));//true
}

需要注意的是isNaN('NaN')返回的是true,而Number.isNaN('NaN')返回的是false

Number.parseInt() Number.parseFloat()

es6把parseInt()和parseFloat()放到了Number上,就是为了逐步减少全局性方法,使得语言逐步模块化。

{
    console.log(Number.parseInt('12'));//12
    console.log(Number.parseInt('12.33'));//12
    console.log(Number.parseInt('12Afsjflk'))//12
    console.log(Number.parseInt('sdf32'))//NaN
    console.log(Number.parseFloat('12.4'));//12.4
    console.log(Number.parseFloat('12'))//12
    console.log(Number.parseFloat('12dfgdfg'));//12
    console.log(Number.parseFloat('12.23dffg'));//12.23
    console.log(Number.parseFloat('sdfsdf12.32'));//NaN
}

Number.parseInt() Number.parseFloat()行为与原来的保持不变

Number.isInteger()

Number.isInteger() 用来判断一个值是否为整数、

{
    console.log(Number.isInteger(12));//true
    console.log(Number.isInteger(23.2));//false
    console.log(Number.isInteger(12.0))//true
    console.log(Number.isInteger('12'));//false    
}

在 JavaScript 内部,整数和浮点数是同样的储存方法,所以12和12.0被视为同一个值。

Math.trunc()

Math对象的拓展中trunc()用于去除一个数的小数部分返回整数部分

{
    console.log(Math.trunc(12.4));//12
    console.log(Math.trunc(12.9));//12
    console.log(Math.trunc('12.4'));//12
    console.log(Math.trunc(-4));//-4
    console.log(Math.trunc(-4.7));//-4
    console.log(Math.trunc('-12.8'));//-12
    console.log(Math.trunc('3.7asd'));//NaN
    console.log(Number.parseInt(-12.8))//-12
    console.log(Number.parseInt('12.89sdsd'))//12
}

在没有Math,trunc()以前,都是用parseInt()方法将小数转换成整数,很显然 还是parseInt强大

Math.sign()

Math.sign方法用来判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值。

{
   console.log(Math.sign(5));//+1
   console.log(Math.sign(-5));//-1
   console.log(Math.sign(0));//0
   console.log(Math.sign(-0));//-0
   console.log(Math.sign('9'));//+1
   console.log(Math.sign('dasdf'));//NaN    
}

参数为正数,返回+1;参数为负数,返回-1;参数为0,返回0;参数为-0,返回-0;其他值,返回NaN。

指数运算符(**)

es6新增了一个指数运算符(**),和 Math.pow()功能一样

{
   let a=3;
   a=a**3;
   console.log(a);//27

   let b=2;
   b**=3;//b=b**3
   console.log(b);//8

   console.log(99**99);//3.697296376497268e+197
   console.log(Math.pow(99,99));//3.697296376497263e+197
}

指数运算符与Math.pow的实现不相同,对于特别大的运算结果,两者会有细微的差异。
</br>
万年不变的国际惯例:
关于数值的拓展,就介绍这些了,如果想看更加详细的资料请狠狠的点击这里~
</br>
</br>

相关文章

  • 数值的拓展

    新增Number.isFinite() Number.isNaN()两个方法 Number.isFinite()...

  • es6

    3.1 const 3.2 解构赋值 3.3 正则拓展 3.4 字符串拓展 ES7提案 3.6 数值拓展 3.7 ...

  • 【ES6】数值扩展/箭头函数及/::

    5 数值的拓展 #5.1 Number.isFinite(), Number.isNaN() Number.isF...

  • ES6学习笔记——数值的拓展

    数值的扩展 二进制和八进制表示法 ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0...

  • 关于二分算法

    1、常规二分 功能:有序数组中查找某个元素的位置。 2、二分拓展之一 有序数组中存在重复数值,找到某个数值在数组中...

  • ES6特性

    箭头操作符 类的支持 增强的对象字面量 字符串模板 解构 参数默认,不定参数, 拓展参数 默认参数值 不定参数 拓...

  • IOT开发版程序测试

    在实验中我们需要用到 MCU 和光照拓展板。将程序写进 MCU 中,由 MCU 去读取光照传感 器的数值,然后上传...

  • 汇编语言--变量及数值操作

    在高级语言中,变量和数值操作是很基本的语法,基本所有语言都有,但是其在汇编级别上是怎么实现的?或者拓展了说,在计算...

  • Excle常用函数

    常用加减乘除用法公式 =数值1+数值2=数值1-数值2=数值1*数值2=数值1/数值2 常用函数及用法 sum 求...

  • 数值分析:数值积分与数值微分

    1 数值积分概述 1.1 引言   对于许多实际问题的求解往往需要计算积分。在高等数学中计算积分采用的是著名的牛顿...

网友评论

      本文标题:数值的拓展

      本文链接:https://www.haomeiwen.com/subject/deajhxtx.html