资讯专栏INFORMATION COLUMN

es6数值的扩展

wangbinke / 1758人阅读

摘要:的方法扩展方法检测有限的数值有穷的数值上面前两个例子检测的都是数字,不管是浮点数还是正整数负数都是有穷的数值,而下面三个有两个则为字符串类型,这个方法是不会转换数字的所以为无穷的数值,当然也是无穷的数值咱们再看最后两个例子,是用的全局方法,

Number的方法扩展

Number.isFinite() 方法检测有限的数值(有穷的数值)

   console.log(Number.isFinite(1)) // true
   console.log(Number.isFinite(3.1415926)) // true
   console.log(Number.isFinite("1")) // false
   console.log(Number.isFinite(NaN)) // false
   console.log(Number.isFinite("1e")) // false
   console.log(isFinite("1")) // true
   console.log(isFinite("1e")) // false

上面前两个例子检测的都是数字,不管是浮点数还是正整数负数都是有穷的数值,而下面三个有两个则为字符串类型,这个方法是不会转换数字的所以为无穷的数值,当然NaN也是无穷的数值,咱们再看最后两个例子,是用的全局方法,字符串数字检测出来就是有穷的,而掺杂其他字符就是无穷的

Number.isNaN() 检测一个值是不是NaN

   console.log(Number.isNaN(1)) // false
   console.log(Number.isNaN(3.1415926)) // false
   console.log(Number.isNaN("1")) // false
   console.log(Number.isNaN(NaN)) // true
   console.log(Number.isNaN("1e")) // false

上面的例子咱们可以了解一下,这个方法就是检测值的NaN

Number.parseInt() 隐士类型的转换

   console.log(Number.parseInt(1)) // 1
   console.log(Number.parseInt(3.1415926)) // 3
   console.log(Number.parseInt(3.6415926)) // 3
   console.log(Number.parseInt("1es5")) //1
   console.log(Number.parseInt("asd123")) // NaN
   console.log(Number.parseInt(NaN)) // NaN

上面的例子转换是可以将浮点数转换为正整数,不会有什么四舍五入,如果字符串中数字为开头,则直接转换提取出数字如果不是的话则为NaN

Number.parseFloat() 类型的转换会保留浮点数

 console.log(Number.parseFloat(1)) // 1
 console.log(Number.parseFloat(3.1415926)) // 3.1415926
 console.log(Number.parseFloat("1es5#")) // 1
 console.log(Number.parseFloat("#asd123")) //NaN
 console.log(Number.parseFloat(NaN)) // NaN

上面的写了几个简单的例子,parseFloat和parseInt的区别就是保留浮点数

Number.isInteger() 检测一个值是否为整数

console.log(Number.isInteger(1)) // true
console.log(Number.isInteger(3.1415926)) // false
console.log(Number.isInteger("123")) // false
console.log(typeof (Math.trunc("1.23"))) // number
console.log(Number.isInteger("1.23")) // false
console.log(Number.isInteger(null)) // false
console.log(Number.isInteger(3.0000000000000002)) // true
console.log(Number.parseFloat(Array)) // NaN

上面的例子如果为整数则为true否则为false,它不会将字符串类型进行隐士转换,如果它检测的值小于JavaScript能够分辨最小的值会出现误判,对于二进制的位数也是有现在要求的不然也会出现误判

Math对象的扩展

Math.trunc() 去除浮点数的小数部分,返回整数也就相当于转换把,但是没有四舍五入

    console.log(Math.trunc(1.8)) // 1
    console.log(Math.trunc(3.1415926)) // 3
    console.log(Math.trunc("3.1415926")) // 3
    console.log(Math.trunc("1.23")) // 1
    console.log(Math.trunc("1.23#")) // NaN
    console.log(Math.trunc("#1.23")) // NaN
    console.log(Math.trunc()) // NaN
    console.log(Math.trunc(-0.25)) // -0

上面举例了几个新增的Math对象的方法,我们可以看出,它是可以字符串数字转化出来数字,我们通过对它的类型检测也是得到了number类型,如果数字字符中包含其它字符或是空则表示为NaN

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

            console.log(Math.sign(1.8))
            console.log(Math.sign(3.1415926))
            console.log(Math.sign("3.1415926"))
            console.log(Math.sign("1.23#"))
            console.log(Math.sign("#1.23"))
            console.log(Math.sign(-0))
            console.log(Math.sign(-2))

上面的例子你可能会疑惑,为什么检测整数和负数的时候都为1 || -1,是因为正数除了0之外都是1,负数除了-0都是-1表示,它也会先执行number的转换字符串数字,如果带有其它符号无法转换的则为NaN

Math.cbrt() 计算立方根

            console.log(Math.cbrt(4))  // 1.5874010519681996
            console.log(Math.cbrt("4")) // 1.5874010519681996
            console.log(Math.cbrt("2q")) // NaN
            console.log(Math.cbrt("q2")) // NaN
            console.log(Math.cbrt("16")) // 2.5198420997897464

上面几个例子也体现除了math新增的方法,它也是先进行number的转换,然后再就进行计算,如果不是纯数字的字符串类型会转换失败得出NaN

Math.hypot() 返回参数内平方的和,可以任意多个参数

    console.log(Math.hypot(4, 4)) // 5.656854249492381
    console.log(Math.hypot("4", 4, 3)) // 6.4031242374328485
    console.log(Math.hypot("2q", 4)) // NaN
    console.log(Math.hypot("q2", 4)) // NaN
    console.log(Math.hypot("16", 4)) // 16.492422502470642

上面的方法也会先进行数值的转换,有一个参数无法转换就会返回NaN

对数方法

Math.log1p() 返回1+参数的自然数,如果小于-1就返回NaN

    console.log(Math.log1p(1)) // 0.6931471805599453       也相当于0
    console.log(Math.log1p(-1)) //-Infinity
    console.log(Math.log1p(-2)) // NaN
    console.log(Math.log1p("-1")) // -Infinity
    console.log(Math.log1p("-2q")) // NaN

Math.log10() 返回以10为底x的对数,小于0返回NaN

    console.log(Math.log10(10)) // 1
    console.log(Math.log10(5)) // 0.6989700043360189
    console.log(Math.log10(20)) // 1.3010299956639813
    console.log(Math.log10(2000)) // 3.3010299956639813

Math.log2() 返回以2为底x的对数,小于0返回NaN

    console.log(Math.log10(10)) // 3.321928094887362
    console.log(Math.log10(5)) // 2.321928094887362
    console.log(Math.log10(20)) // 4.321928094887363
    console.log(Math.log10(2000)) // 10.965784284662087
    console.log(Math.log2("2000")) // 10.965784284662087

上面的这个方法也是先进行数值的转换,在进行计算

总结:基本上数值的扩展都是针对数字类型的一些新方法的使用,一般的是存在比较复杂的公式,所以我们可以按照方法得出的结果可以去查找规律从而可以使用它,可以多了解了解

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/109069.html

相关文章

  • ES6入门之数值扩展

    摘要:用来表示与大于的最小浮点数之间的差,实际上就是能够表示的最小精度。对象的扩展在对象上新增了个与数学相关的方法。用于去除一个数的小树部分,返回整数部分。对于非数值,则用方法将其转换为数值,对于空值和无法截取整数的值,返回。返回以为底的的对数。 showImg(https://segmentfault.com/img/bVbrTG6?w=1080&h=1080); 1. 二进制和八进制表示...

    tyheist 评论0 收藏0
  • ES6入门之数值扩展

    摘要:用来表示与大于的最小浮点数之间的差,实际上就是能够表示的最小精度。对象的扩展在对象上新增了个与数学相关的方法。用于去除一个数的小树部分,返回整数部分。对于非数值,则用方法将其转换为数值,对于空值和无法截取整数的值,返回。返回以为底的的对数。 showImg(https://segmentfault.com/img/bVbrTG6?w=1080&h=1080); 1. 二进制和八进制表示...

    xi4oh4o 评论0 收藏0
  • ES6学习 第六章 数值扩展

    摘要:前言本章介绍数值的扩展。本章原文链接数值的扩展进制表示法提供了二进制和八进制数值的新的写法,分别用前缀或和或表示。科学计数法里面,表示指数的或前后不能有分隔符。函数返回数值的双曲余弦函数可用表示。与数值的类型不同。 前言本章介绍数值的扩展。新增了很多方法,有些不常用的方法了解即可。本章原文链接:数值的扩展进制表...

    番茄西红柿 评论0 收藏2637
  • ES6数值扩展

    摘要:二进制和八进制提供了二进制和八进制数值的新的写法,分别用前缀或和或表示。八进制声明八进制的英文单词是,也是以零开始的,然后第二个位置是欧,然后跟上八进制的值就可以了。用来检查一个数值是否为有限的。对于非数值,内部使用方法将其先转为数值。 二进制和八进制 ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示。 二进制声明: 二进制的英文单词是Binar...

    xiguadada 评论0 收藏0
  • es6学习笔记-数值扩展_V1.0_byKL

    摘要:学习笔记数值的扩展有一些不常用或者还不支持的就没有记录了总体来说本篇只是一个备忘而已用来检查一个数值是否为有限的。两个新方法只对数值有效,非数值一律返回。参考引用数值扩展 es6学习笔记-数值的扩展 有一些不常用或者还不支持的就没有记录了,总体来说本篇只是一个备忘而已 Number.isFinite(), Number.isNaN() Number.isFinite()用来检查一个数值...

    宋华 评论0 收藏0
  • ES6入门04】:数值扩展

    摘要:数值扩展判断数值是否无尽或有尽判断是否为判断数值是否为整数,参数必须为数值类型能准确表示的整数范围在到之间不含两个端点,超过这个范围,无法精确表示这个值。方法取一个数的整数部分方法判断数值小于等于大于的情况取数值的立方根 数值扩展 Number.isFinite() { // 判断数值是否无尽或有尽 console.log(Number.isFinite(15)); /...

    kohoh_ 评论0 收藏0

发表评论

0条评论

wangbinke

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<