JS进阶学习笔记(5)基本类型之数值与Number

数值与Number

js不区分整数值和浮点数值,所有数值都用浮点数值表示

es新增算术运算符:**

console.log(3**2**2);
        //81. 2^2=4,3^4=81  **:指数操作符。从右往左算。

一些易错的情况:

console.log(0/0);
        // NaN. 
         console.log(10/0);
        // Infinity 被0整除皆返回Infinity
        console.log(Infinity/Infinity);
        // NaN  基于±Infinity的加、减、乘、除等算术运算结果依然是±Infinity 
        console.log(parseInt("A",16));
        // 10.  第二个参数描述进制。若无,则返回NaN

若一个负数发生下溢时,返回-0

将非数值转换为数值的函数:
Number( )、parseInt( )和parseFloat( )

console.log(Number(null)); //0
        // console.log(Number(Null)); //报错
        console.log(Number(undefined));  //NaN

Number:

let num=new Number(10);
        console.log(num.toString()); 
        console.log(num.toString(8));
        console.log(num.toString(16));
        //10,12,a。  
        // 创建一个Number对象的构造函数。返回数值对象的字符串表示,toString()括号内表示输出的进制,默认十进制

常用方法:

num=new Number(123456);
        console.log(num.toLocaleString()); 
        // 123,456   返回数值对象的字符串本地表示
        console.log(num.valueOf()); 
        // 123456  返回数值对象的原始数值,是一个number不是object
num=new Number(123.456);
        console.log(num.toFixed(2)); 
        // 123.46  返回包含指定小数位数的数值字符串,存在四舍五入
        console.log(num.toExponential(2));
        // 1.23e+2  返回科学计数法表示的数值字符串。括号内表示小数位数,存在四舍五入
        num=99;
        console.log(num.toPrecision(1)); 
        console.log(num.toPrecision(3));  
        // 1e+2,99.0   返回数值最恰当的形式。括号内表示结果中数字的总位数,存在四舍五入
        // 该方法本质上会根据数值和精度来确定调用上面两个方法之一
console.log(Number.isFinite(8));
        console.log(Number.isFinite(NaN));
        console.log(Number.isFinite(5/0));
        console.log(Number.isFinite(Infinity));
        console.log(Number.isFinite("foo"));
        console.log(Number.isFinite("15"));
        console.log(Number.isFinite(true));
        // 除了第一个是true,其他都是flase。 用于检查一个数值是否有限。若参数不是数值,则返回false
console.log(Number.isNaN("15"));
        console.log(Number.isNaN(true));
        // 都是false  如果参数类型不是NaN,一律返回false。
console.log(Number.isInteger("15")); //false
        console.log(Number.isInteger(12));  //true
        console.log(Number.isInteger(12.1));  //false
        console.log(Number.isInteger(12.0));  //true
        // 判断一个数值是否为整数。参数不是数值,返回false。
function withinErrorMargin(left, right) {
        //假设误差为2的-50次方。
            return Math.abs(left - right) < Number.EPSILON * Math.pow(2, 2);
        }
        console.log(0.1 + 0.2 === 0.3); // false
        console.log(withinErrorMargin(0.1 + 0.2, 0.3));// true
        console.log(1.1 + 1.3 == 2.4); // false
        console.log(withinErrorMargin(1.1 + 1.3, 2.4)); // true
        // console.log(Number.EPSILON * Math.pow(2, 2));

Math对象及其常用方法:

let nums=[1,2,3,4,5,6];
        max=Math.max(...nums);
        console.log(max);
        // 6  取最大的数
        let numss=["a","b","c","d","e","f"];
        max=Math.max(...numss);
        console.log(max);
        // NaN。只能传数值
        console.log(Math.ceil(123.456));
        console.log(Math.floor(123.456));
        console.log(Math.round(124.556));
        console.log(Math.fround(123.456));
        // 124  123  125  123.45600128173828
// 向上舍  向下舍  四舍五入  返回最接近的单精度(32)位浮点数
console.log(Math.trunc(10,01)); //10
        console.log(Math.trunc(10));  //10
        console.log(Math.trunc(-10,01));  //-10
        console.log(Math.trunc(NaN));  //NaN
        console.log(Math.trunc(null));  //0
        console.log(Math.trunc());  //NaN
        // Math.trunc()用于去除一个数的小数部分,返回整数部分。
        console.log(Math.cbrt(8));  //2  用于计算一个数的立方根。
        // Math.trunc()对于非数值,其内部会先使用Number( )转换为数值再操作。
        // Math.trunc()对于空值和无法截取整数的值,返回NaN。
        console.log(Math.sign(10));  //1
        console.log(Math.sign(-10));  //-1
        console.log(Math.sign(0));  //0
        console.log(Math.sign(NaN));  //NaN
        console.log(Math.sign("10"));  //1
        // 用于判断一个数是正数、负数还是零。
        // 对于非数值,先将其转换为数值在判断。
        // 返回值
        // 正数:+1;负数:-1;
        // 0:0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值