本文是 重温基础 系列文章的第六篇。今日感受:自己需要多总结,会有不同收获(比如今晚我做的转正总结)。系列目录:【复习资料】ES6/ES7/ES8/ES9资料整理(个人整理)【重温基础】1.语法和数据类型【重温基础】2.流程控制和错误处理【重温基础】3.循环和迭代【重温基础】4.函数【重温基础】5.表达式和运算符本章节复习的是JS中的数字类型,涉及的API比较多。 前置基础: 在JavaScript中,数字为双精度浮点类型(即一个数字范围只能在-(253-1)和(253-1)之间),整数类型也一样。另外数字类型也可以是以下三种符号值:+Infinity : 正无穷;-Infinity : 负无穷;NaN : 非数字(not a number);1.数字对象JS中内置了Number对象的一些常量属性:属性描述Number.MAX_VALUE可表示的最大值Number.MIN_VALUE可表示的最小值Number.NaN特指“非数字”Number.NEGATIVE_INFINITY特指“负无穷”;在溢出时返回Number.POSITIVE_INFINITY特指“正无穷”;在溢出时返回Number.EPSILON表示1和比最接近1且大于1的最小Number之间的差别Number.MIN_SAFE_INTEGERJavaScript最小安全整数.Number.MAX_SAFE_INTEGERJavaScript最大安全整数.注意:以上所有属性都是不可写,不可枚举,也不可配置。Number.MAX_VALUENumber.MAX_VALUE是 Number 对象的一个静态属性,值接近于 1.79E+308。大于 Number.MAX_VALUE 的值代表 “Infinity”。let a = 100;if(a < Number.MAX_VALUE){ console.log(‘success’);}// successNumber.MIN_VALUENumber.MIN_VALUE是 Number 对象的一个静态属性,值接近于 5e-324,是 JavaScript 里最接近 0 的正值,而不是最小的负值。let a = 100;if(a > Number.MIN_VALUE){ console.log(‘success’);}// successNumber.NaNNumber.NaN 表示“非数字”,和 NaN 一样。Number.POSITIVE_INFINITYNumber.POSITIVE_INFINITY 属性表示正无穷大,值同全局对象 Infinity 属性的值相同。let a = Number.MAX_VALUE * 2;if(a == Number.POSITIVE_INFINITY){ console.log(‘success’);}// successNumber.NEGATIVE_INFINITYNumber.NEGATIVE_INFINITY 属性表示负无穷大,值和全局对象的 Infinity 属性的负值相同。let a = - Number.MAX_VALUE * 2;if(a == Number.NEGATIVE_INFINITY){ console.log(‘success’);}// successNumber.EPSILONNumber.EPSILON属性表示 1 与Number可表示的大于 1 的最小的浮点数之间的差值,值接近于 2-52 。let a = 0.1, b = 0.2, c = 0.3;let d = (Math.abs(a + b - c) < Number.EPSILON);d; // trueNumber.MIN_SAFE_INTEGERJS中最小的安全的integer型数字 (-(253 - 1))。Number.MAX_SAFE_INTEGERJS中最大的安全的integer型数字 (253 - 1)。2.数字方法常见的方法有:方法描述Number.parseFloat()把字符串参数解析成浮点数,和全局方法 parseFloat() 作用一致.Number.parseInt()把字符串解析成特定基数对应的整型数字,和全局方法 parseInt() 作用一致.Number.isFinite()判断传递的值是否为有限数字。Number.isInteger()判断传递的值是否为整数。Number.isNaN()判断传递的值是否为 NaN.Number.isSafeInteger()判断传递的值是否为安全整数。使用方法:Number.parseFloat()let a1 = 3.1415, a2 = ‘3.1114’;Number.parseFloat(a1); // 3.1415;Number.parseFloat(a2); // 3.1111;parseFloat(a1); // 3.1415;parseFloat(a2); // 3.1111;Number.parseFloat == parseFloat;// trueNumber.parseInt()let a1 = ‘0110’;Number.parseInt(a1, 2); // 6Number.parseInt(a1, 10); // 110Number.parseInt = parseInt; // trueNumber.isFinite()Number.isFinite(Infinity); // falseNumber.isFinite(NaN); // falseNumber.isFinite(-Infinity); // falseNumber.isFinite(0); // trueNumber.isFinite(2e64); // trueNumber.isFinite(‘0’); // false, 全局函数 isFinite(‘0’) 会返回 trueNumber.isInteger()Number.isInteger(0); // trueNumber.isInteger(1); // trueNumber.isInteger(-100000); // trueNumber.isInteger(0.1); // falseNumber.isInteger(Math.PI); // falseNumber.isInteger(Infinity); // falseNumber.isInteger(-Infinity); // falseNumber.isInteger(“10”); // falseNumber.isInteger(true); // falseNumber.isInteger(false); // falseNumber.isInteger([1]); // falseNumber.isNaN()Number.isNaN(NaN); // trueNumber.isNaN(Number.NaN); // trueNumber.isNaN(0 / 0) // true// 下面这几个如果使用全局的 isNaN() 时,会返回 true。Number.isNaN(“NaN”); // false,字符串 “NaN” 不会被隐式转换成数字 NaN。Number.isNaN(undefined); // falseNumber.isNaN({}); // falseNumber.isNaN(“blabla”); // false// 下面的都返回 falseNumber.isNaN(true);Number.isNaN(null);Number.isNaN(37);Number.isNaN(“37”);Number.isNaN(“37.37”);Number.isNaN("");Number.isNaN(" “);Number.isSafeInteger()Number.isSafeInteger(3); // trueNumber.isSafeInteger(Math.pow(2, 53)) // falseNumber.isSafeInteger(Math.pow(2, 53) - 1) // trueNumber.isSafeInteger(NaN); // falseNumber.isSafeInteger(Infinity); // falseNumber.isSafeInteger(“3”); // falseNumber.isSafeInteger(3.1); // falseNumber.isSafeInteger(3.0); // true数字类型原型上的方法:方法描述案例toExponential()返回一个数字的指数形式的字符串1.23e+2toFixed()返回指定小数位数的表示形式var a=123,b=a.toFixed(2)//b=“123.00"toPrecision()返回一个指定精度的数字。a=123中,3会由于精度限制消失var a=123,b=a.toPrecision(2)//b=“1.2e+2"toExponential()以指数表示法返回该数值字符串表示形式,可接收一个参数指定小数点后几位数字。let a = 99.6633;let a1 = ‘字符串:’ + a.toExponential(); // “字符串:9.96633e+1"let a2 = ‘字符串:’ + a.toExponential(2);// “字符串:9.97e+1"toFixed()使用定点表示法来格式化一个数,可接收一个参数指定保留小数点后几位,取值为0-20之间。注意: 返回的数据类型是字符串类型。let a = 1.2345;a.toFixed(); // “1"a.toFixed(2); // “1.23"toPrecision()以指定的精度返回该数值对象的字符串表示,可接收一个参数,用来指定有效数个数的整数。let a = 1.2345;let a1 = ‘字符串:’ + a.toPrecision(); // “字符串:1.2345"let a2 = ‘字符串:’ + a.toPrecision(1);// “字符串:1"let a2 = ‘字符串:’ + a.toPrecision(2);// “字符串:1.2"3.数学对象JS内置的数学对象Math,有很多属性和方法,这里需要注意的是Math对象中的三角函数参数都是弧度制的。方法描述abs()绝对值sin(), cos(), tan()标准三角函数;参数为弧度asin(), acos(), atan(), atan2()反三角函数; 返回值为弧度sinh(), cosh(), tanh()双曲三角函数; 返回值为弧度.asinh(), acosh(), atanh()反双曲三角函数;返回值为弧度.pow(), exp(), expm1(), log10(), log1p(), log2()指数与对数函数floor(), ceil()返回最大/最小整数小于/大于或等于参数min(), max()返回一个以逗号间隔的数字参数列表中的较小或较大值(分别地)random()返回0和1之间的随机数。round(),fround(), trunc()四舍五入和截断函数sqrt(), cbrt(), hypot()平方根,立方根,平方参数的和的平方根sign()数字的符号, 说明数字是否为正、负、零。clz32(),imul()在32位2进制表示中,开头的0的数量.返回传入的两个参数相乘结果的类C的32位表现形式完整的描述和使用方法,建议查看 MDN Math参考资料1.MDN 数字和日期本部分内容到这结束Author王平安E-mailpingan8787@qq.com博 客www.pingan8787.com微 信pingan8787每日文章推荐https://github.com/pingan8787…ES小册es.pingan8787.com