Skip to content

二进制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
}