二进制0b(或0B) 八进制0o(或0O)
javascript
{
// 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
javascript
{
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
javascript
{
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对象上面,其目的是对全局变量进行模块化
javascript
{
// ES5的写法
console.log(parseInt('12.34')) // 12
// ES6的写法
console.log(Number.parseInt('12.34')) // 12
}
Number.parseFloat()
Number.parseFloat() 方法可以把一个字符串解析成浮点数。该方法与全局的 parseFloat() 函数相同,并且处于 ECMAScript 6 规范中(用于全局变量的模块化)
javascript
{
// ES5的写法
console.log(parseFloat('12.34#')) // 12.34
// ES6的写法
console.log(Number.parseFloat('12.34#')) // 12.34
}
Number.isInteger()
Number.isInteger() 方法用来判断给定的参数是否为整数
javascript
{
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)
javascript
{
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))
javascript
{
console.log(Number.MIN_SAFE_INTEGER) // -9007199254740991
console.log(-Math.pow(2, 53) - 1) // -9007199254740991
}
Number.isSafeInteger()
Number.isSafeInteger() 方法用来判断传入的参数值是否是一个“安全整数”(safe integer)
javascript
{
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() 方法会将数字的小数部分去掉,只保留整数部分
javascript
{
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 传入该函数的参数会被隐式转换成数字类型
javascript
{
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() 函数返回任意数字的立方根
javascript
{
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
}