es6数值拓展

这篇博客探讨了JavaScript中数值精度问题,如0.1 + 0.2不精确相等的问题,并介绍了Number.EPSILON用于判断近似相等。此外,还讲解了二进制、八进制和十六进制的表示方法。接着,文章涉及了Number.isFinite、Number.isNaN等方法检测数值特性。最后,提到了Number.parseInt和Number.parseFloat用于数值转换,以及Math.trunc、Math.sign等数学函数的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /* 
            Number.EPSILON 是JavaScript 表示的最小精度
            EPSILON 属性接近于 2.220446049250313e-16,若两个数都小于它,则js默认两者相等
        */
        console.log(0.1+0.2); // 0.30000000000000004
        console.log(0.1 + 0.2 === 0.3); // false
        let equal = (a, b) => {
            if(Math.abs(a-b) < Number.EPSILON){
                return true;
            } else{
                return false;
            }
        }
        console.log(equal(0.1 + 0.2, 0.3)); // true
        console.log('----------');

        // 常用进制
        let a = 0b1010; // 二进制表示方式:0b 开头
        console.log(a); // 10
        let b = 0o7654; // 八进制表示方式:0o 开头
        console.log(b); // 4012
        let c = 0xffa5; // 十六进制表示方式:0x 开头
        console.log(c); // 65445
        console.log('----------');

        // Number.isFinite 检测一个数是否为有限数
        console.log(Number.isFinite(100)); // true
        console.log(Number.isFinite(100/0)); // false
        console.log(Number.isFinite(Infinity)); // false
        console.log('----------');

        /* 
            Number.isNaN 检测一个数值是否为 NaN (not a number)
            NaN: 
                1.not a number 不是一个数值
                2.表示存储数据的数据类型,不是一个数值
                3.如果有非数值进行运算,结果就是NaN
        */
        console.log(Number.isNaN(123)); // false
        let d = 7 * "abc";
        console.log(Number.isNaN(d)); // true
        console.log('----------');

        // Number.parseInt  Number.parseFloat字符串转整数
        console.log(Number.parseInt('123456abc78')); // 123456
        console.log(Number.parseInt('123.456abc')); // 123
        console.log(Number.parseFloat('123456abc78')); // 123456
        console.log(Number.parseFloat('123.456abc')); // 123.456
        console.log('----------');

        // Number.isInteger 判断一个数是否为整数
        console.log(Number.isInteger(5)); // true
        console.log(Number.isInteger(2.5)); // false
        console.log('----------');

        // Math.trunc 将数字的小数部分抹掉
        console.log(Math.trunc(3.5)); // 3
        console.log('----------');

        // Math.sign 判断一个数是正数还是负数还是零
        console.log(Math.sign(100)); // 1
        console.log(Math.sign(0)); // 0
        console.log(Math.sign(-100)); // -1
    </script>
</body>
</html>

更多相关内容大家可以前往我的个人博客浏览:eyes++的个人空间

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值