0b 或 0B 表示二进制
0o 或 0O 表示八进制
0b111110111 === 503; // true
0o767 === 503; // true复制代码
严格模式下不许用前缀0,要用完整前缀0b等
(function(){
console.log(0o11 === 011); // true
})()
(function(){
'use strict';
console.log(0o11 === 011); // Uncaught SyntaxError: Octal literals are not allowed in strict mode.
})()复制代码
Number
相关polyfill
将一些全局方法逐步迁移到各模块下,如parseInt、parseFloat。
- Number()
// 转十进制 Number('0b111'); // 7 Number('0o10'); // 8 // total 19 Object.getOwnPropertyNames(Number);复制代码lengthnameprototypeisFinite()和全局的有所区别,全局的方法会先将非数值转为数值,Number下方法不会Number.isFinite(NaN); // false Number.isFinite(Infinity); // false Number.isFinite(-Infinity); // false Number.isFinite('foo'); // false Number.isFinite('15'); // false Number.isFinite(true); // false复制代码isInteger// js 中整数和浮点数是同样的存储方法 Number.isInteger(25); // true Number.isInteger(25.0); // true Number.isInteger(25.1); // false复制代码parseFloat()和全局的保持一致parseInt()和全局的保持一致Number.parseInt === parseInt; // true Number.parseFloat === parseFloat; // true Number.parseFloat('123.45#'); // 123.45复制代码isNaN()和全局的有所区别,全局的方法会先将非数值转为数值,Number下方法不会Number.isNaN(NaN) // true Number.isNaN(15) // false Number.isNaN('15') // false Number.isNaN(true) // false Number.isNaN(9/NaN) // true Number.isNaN('true'/0) // true Number.isNaN('true'/'true') // true复制代码MAX_SAFE_INTEGER最大整数上限MIN_SAFE_INTEGER最小整数下限isSafeIntegerJS 整数范围-2^53到2^53之间(不含两个端点),判断是否在这个范围内Number.MAX_SAFE_INTEGER === Math.pow(2, 53) - 1; // true Number.MIN_SAFE_INTEGER; // -9007199254740991 Math.pow(2, 53); // 9007199254740992 9007199254740993;// 9007199254740992 Number.isSafeInteger('a') // false Number.isSafeInteger(null) // false Number.isSafeInteger(NaN) // false Number.isSafeInteger(Infinity) // false Number.isSafeInteger(-Infinity) // false Number.isSafeInteger(3) // true Number.isSafeInteger(1.2) // false Number.isSafeInteger(9007199254740990) // true Number.isSafeInteger(9007199254740992) // false Number.isSafeInteger(Number.MIN_SAFE_INTEGER - 1) // false Number.isSafeInteger(Number.MIN_SAFE_INTEGER) // true Number.isSafeInteger(Number.MAX_SAFE_INTEGER) // true Number.isSafeInteger(Number.MAX_SAFE_INTEGER + 1) // false复制代码MAX_VALUEMIN_VALUENaNNEGATIVE_INFINITYPOSITIVE_INFINITYEPSILON表示1与大于1的最小浮点数之间的差,2.220446049250313e-16Number.EPSLION === Math.pow(2, -52); // false Number.EPSILON.toFixed(20); // "0.00000000000000022204" 0.1 + 0.2; // 0.30000000000000004 0.1 + 0.2 - 0.3; // 5.551115123125783e-17 0.1 + 0.2 === 0.3; // false复制代码
Object.getOwnPropertyNames(Number);复制代码
constructortoExponentialtoFixedtoPrecisiontoStringvalueOftoLocaleStringMath
相关polyfill
所有方法都是静态方法,只能在 Math 对象上调用// total 55 Object.getOwnPropertyNames(Math);复制代码absacosacoshasinasinhatanatanh
-`atan2ceilcbrtexpm1clz32coscoshexpfloorfroundhypotimulloglog1plog2log10maxminpowrandomroundsign()判断一个数是正、负还是0sinsqrttantanhtrunc()去除小数部分ELN10LN2LOG10ELOG2EPISQRT1_2SQRT2sinhclampDEG_PER_RADdegreesfscaleiaddhisubhimulhRAD_PER_DEGradiansscaleumulhsignbit
本文深入解析JavaScript中的数字类型,包括二进制、八进制、十进制转换,Number对象的方法,如isFinite、isInteger、isNaN等,以及MAX_SAFE_INTEGER、MIN_SAFE_INTEGER等常量的使用。
762

被折叠的 条评论
为什么被折叠?



