二进制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)); // true
console.log(Number.isFinite(0.8)); // true
console.log(Number.isFinite(NaN)); // false
console.log(Number.isFinite(Infinity)); // false
console.log(Number.isFinite(-Infinity)); // false
console.log(Number.isFinite("foo")); // false
console.log(Number.isFinite("15")); // false
console.log(Number.isFinite(true)); // false
}
Number.isNaN()
用来检查一个值是否为NaN
{
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN(15)); // false
console.log(Number.isNaN("15")); // false
console.log(Number.isNaN(true)); // false
console.log(Number.isNaN(9 / NaN)); // false
console.log(Number.isNaN("true" / 0)); // true
console.log(Number.isNaN("true" / "true")); // true
}
Number.parseInt()
Number.parseInt() 方法依据指定基数解析成整数。 注: 这个方法和全局的 parseInt() 函数具有一样的函数功能
Number.parseInt === parseInt; // true
ES6 将全局方法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)); // true
console.log(Number.isInteger(25.1)); // false
console.log(Number.isInteger(null)); // false
console.log(Number.isInteger("15")); // false
console.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); // 9007199254740991
console.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); // -9007199254740991
console.log(-Math.pow(2, 53) - 1); // -9007199254740991
}
Number.isSafeInteger()
Number.isSafeInteger() 方法用来判断传入的参数值是否是一个“安全整数”(safe integer)
{
console.log(Number.isSafeInteger(3)); // true
console.log(Number.isSafeInteger(Math.pow(2, 53))); // true
console.log(Number.isSafeInteger(Math.pow(2, 53) - 1)); // true
console.log(Number.isSafeInteger(NaN)); // false
console.log(Number.isSafeInteger(Infinity)); // false
console.log(Number.isSafeInteger("3")); // false
console.log(Number.isSafeInteger(3.1)); // false
console.log(Number.isSafeInteger(3.1)); // false
console.log(Number.isSafeInteger(3.0)); // true
}
Math扩展
Math.trunc()
Math.trunc() 方法会将数字的小数部分去掉,只保留整数部分
{
console.log(Math.trunc(13.37)); // 13
console.log(Math.trunc(42.84)); // 42
console.log(Math.trunc(0.123)); // 0
console.log(Math.trunc(-0.123)); // 0
console.log(Math.trunc(true)); // 1
console.log(Math.trunc(false)); // 0
console.log(Math.trunc(NaN)); // NaN
console.log(Math.trunc(undefined)); // NaN
console.log(Math.trunc("foo")); // NaN
console.log(Math.trunc()); // NaN
}
Math.sign()
Math.sign() 函数返回一个数字的符号, 指示数字是正数,负数还是零 注: 此函数共有5种返回值, 分别是 1, -1, 0, -0, NaN. 代表的各是正数, 负数, 正零, 负零, NaN 传入该函数的参数会被隐式转换成数字类型
{
console.log(Math.sign(3)); // 1
console.log(Math.sign(-3)); // -1
console.log(Math.sign("-3")); // -1
console.log(Math.sign(0)); // 0
console.log(Math.sign(-0)); // -0
console.log(Math.sign(NaN)); // NaN
console.log(Math.sign(true)); // 1
console.log(Math.sign(false)); // 0
console.log(Math.sign("foo")); // NaN
console.log(Math.sign()); // NaN
}
Math.cbrt()
Math.cbrt() 函数返回任意数字的立方根
{
console.log(Math.cbrt(8)); // 2
console.log(Math.cbrt(NaN)); // NaN
console.log(Math.cbrt(-1)); // -1
console.log(Math.cbrt(-0)); // -0
console.log(Math.cbrt(-Infinity)); // -Infinity
console.log(Math.cbrt(0)); // 0
console.log(Math.cbrt(1)); // 1
console.log(Math.cbrt(Infinity)); // Infinity
console.log(Math.cbrt(null)); // 0
console.log(Math.cbrt(2)); // 1.2599210498948734
}