二进制0b(或0B) 八进制0o(或0O)
{// es5// 十进制 -> 二进制const a = 5;console.log(a.toString(2)); // 101// 二进制 -> 十进制const b = 101;console.log(parseInt(b, 2)); // 5}{// es6// 0b(或0B) 和0o(或0O)const a = 0b0101;console.log(a);const b = 0o777;console.log(b);}
Number.isFinite()
用来检查一个数值是否为有限的(finite),即不是Infinity
{console.log(Number.isFinite(15)); // trueconsole.log(Number.isFinite(0.8)); // trueconsole.log(Number.isFinite(NaN)); // falseconsole.log(Number.isFinite(Infinity)); // falseconsole.log(Number.isFinite(-Infinity)); // falseconsole.log(Number.isFinite("foo")); // falseconsole.log(Number.isFinite("15")); // falseconsole.log(Number.isFinite(true)); // false}
Number.isNaN()
用来检查一个值是否为NaN
{console.log(Number.isNaN(NaN)); // trueconsole.log(Number.isNaN(15)); // falseconsole.log(Number.isNaN("15")); // falseconsole.log(Number.isNaN(true)); // falseconsole.log(Number.isNaN(9 / NaN)); // falseconsole.log(Number.isNaN("true" / 0)); // trueconsole.log(Number.isNaN("true" / "true")); // true}
Number.parseInt()
Number.parseInt() 方法依据指定基数解析成整数。 注: 这个方法和全局的 parseInt() 函数具有一样的函数功能
Number.parseInt === parseInt; // trueES6 将全局方法parseInt()移植到Number对象上面,其目的是对全局变量进行模块化
{// ES5的写法console.log(parseInt("12.34")); // 12// ES6的写法console.log(Number.parseInt("12.34")); // 12}
Number.parseFloat()
Number.parseFloat() 方法可以把一个字符串解析成浮点数。该方法与全局的 parseFloat() 函数相同,并且处于 ECMAScript 6 规范中(用于全局变量的模块化)
{// ES5的写法console.log(parseFloat("12.34#")); // 12.34// ES6的写法console.log(Number.parseFloat("12.34#")); // 12.34}
Number.isInteger()
Number.isInteger() 方法用来判断给定的参数是否为整数
{console.log(Number.isInteger(25)); // trueconsole.log(Number.isInteger(25.1)); // falseconsole.log(Number.isInteger(null)); // falseconsole.log(Number.isInteger("15")); // falseconsole.log(Number.isInteger(true)); // false}
Number.MAX_SAFE_INTEGER
Number.MAX_SAFE_INTEGER 常量表示在 JavaScript 中最大的安全整数(maxinum safe integer)(253 - 1)
{console.log(Number.MAX_SAFE_INTEGER); // 9007199254740991console.log(Math.pow(2, 53) - 1); // 9007199254740991}
Number.MIN_SAFE_INTEGER
Number.MIN_SAFE_INTEGER 代表在 JavaScript中最小的安全的integer型数字 (-(253 - 1))
{console.log(Number.MIN_SAFE_INTEGER); // -9007199254740991console.log(-Math.pow(2, 53) - 1); // -9007199254740991}
Number.isSafeInteger()
Number.isSafeInteger() 方法用来判断传入的参数值是否是一个“安全整数”(safe integer)
{console.log(Number.isSafeInteger(3)); // trueconsole.log(Number.isSafeInteger(Math.pow(2, 53))); // trueconsole.log(Number.isSafeInteger(Math.pow(2, 53) - 1)); // trueconsole.log(Number.isSafeInteger(NaN)); // falseconsole.log(Number.isSafeInteger(Infinity)); // falseconsole.log(Number.isSafeInteger("3")); // falseconsole.log(Number.isSafeInteger(3.1)); // falseconsole.log(Number.isSafeInteger(3.1)); // falseconsole.log(Number.isSafeInteger(3.0)); // true}
Math扩展
Math.trunc()
Math.trunc() 方法会将数字的小数部分去掉,只保留整数部分
{console.log(Math.trunc(13.37)); // 13console.log(Math.trunc(42.84)); // 42console.log(Math.trunc(0.123)); // 0console.log(Math.trunc(-0.123)); // 0console.log(Math.trunc(true)); // 1console.log(Math.trunc(false)); // 0console.log(Math.trunc(NaN)); // NaNconsole.log(Math.trunc(undefined)); // NaNconsole.log(Math.trunc("foo")); // NaNconsole.log(Math.trunc()); // NaN}
Math.sign()
Math.sign() 函数返回一个数字的符号, 指示数字是正数,负数还是零 注: 此函数共有5种返回值, 分别是 1, -1, 0, -0, NaN. 代表的各是正数, 负数, 正零, 负零, NaN 传入该函数的参数会被隐式转换成数字类型
{console.log(Math.sign(3)); // 1console.log(Math.sign(-3)); // -1console.log(Math.sign("-3")); // -1console.log(Math.sign(0)); // 0console.log(Math.sign(-0)); // -0console.log(Math.sign(NaN)); // NaNconsole.log(Math.sign(true)); // 1console.log(Math.sign(false)); // 0console.log(Math.sign("foo")); // NaNconsole.log(Math.sign()); // NaN}
Math.cbrt()
Math.cbrt() 函数返回任意数字的立方根
{console.log(Math.cbrt(8)); // 2console.log(Math.cbrt(NaN)); // NaNconsole.log(Math.cbrt(-1)); // -1console.log(Math.cbrt(-0)); // -0console.log(Math.cbrt(-Infinity)); // -Infinityconsole.log(Math.cbrt(0)); // 0console.log(Math.cbrt(1)); // 1console.log(Math.cbrt(Infinity)); // Infinityconsole.log(Math.cbrt(null)); // 0console.log(Math.cbrt(2)); // 1.2599210498948734}
