二进制0b(或0B) 八进制0o(或0O)

  1. {
  2. // es5
  3. // 十进制 -> 二进制
  4. const a = 5;
  5. console.log(a.toString(2)); // 101
  6. // 二进制 -> 十进制
  7. const b = 101;
  8. console.log(parseInt(b, 2)); // 5
  9. }
  10. {
  11. // es6
  12. // 0b(或0B) 和0o(或0O)
  13. const a = 0b0101;
  14. console.log(a);
  15. const b = 0o777;
  16. console.log(b);
  17. }

Number.isFinite()

用来检查一个数值是否为有限的(finite),即不是Infinity

  1. {
  2. console.log(Number.isFinite(15)); // true
  3. console.log(Number.isFinite(0.8)); // true
  4. console.log(Number.isFinite(NaN)); // false
  5. console.log(Number.isFinite(Infinity)); // false
  6. console.log(Number.isFinite(-Infinity)); // false
  7. console.log(Number.isFinite("foo")); // false
  8. console.log(Number.isFinite("15")); // false
  9. console.log(Number.isFinite(true)); // false
  10. }

Number.isNaN()

用来检查一个值是否为NaN

  1. {
  2. console.log(Number.isNaN(NaN)); // true
  3. console.log(Number.isNaN(15)); // false
  4. console.log(Number.isNaN("15")); // false
  5. console.log(Number.isNaN(true)); // false
  6. console.log(Number.isNaN(9 / NaN)); // false
  7. console.log(Number.isNaN("true" / 0)); // true
  8. console.log(Number.isNaN("true" / "true")); // true
  9. }

Number.parseInt()

Number.parseInt() 方法依据指定基数解析成整数。 注: 这个方法和全局的 parseInt() 函数具有一样的函数功能 Number.parseInt === parseInt; // true ES6 将全局方法parseInt()移植到Number对象上面,其目的是对全局变量进行模块化

  1. {
  2. // ES5的写法
  3. console.log(parseInt("12.34")); // 12
  4. // ES6的写法
  5. console.log(Number.parseInt("12.34")); // 12
  6. }

Number.parseFloat()

Number.parseFloat() 方法可以把一个字符串解析成浮点数。该方法与全局的 parseFloat() 函数相同,并且处于 ECMAScript 6 规范中(用于全局变量的模块化)

  1. {
  2. // ES5的写法
  3. console.log(parseFloat("12.34#")); // 12.34
  4. // ES6的写法
  5. console.log(Number.parseFloat("12.34#")); // 12.34
  6. }

Number.isInteger()

Number.isInteger() 方法用来判断给定的参数是否为整数

  1. {
  2. console.log(Number.isInteger(25)); // true
  3. console.log(Number.isInteger(25.1)); // false
  4. console.log(Number.isInteger(null)); // false
  5. console.log(Number.isInteger("15")); // false
  6. console.log(Number.isInteger(true)); // false
  7. }

Number.MAX_SAFE_INTEGER

Number.MAX_SAFE_INTEGER 常量表示在 JavaScript 中最大的安全整数(maxinum safe integer)(253 - 1)

  1. {
  2. console.log(Number.MAX_SAFE_INTEGER); // 9007199254740991
  3. console.log(Math.pow(2, 53) - 1); // 9007199254740991
  4. }

Number.MIN_SAFE_INTEGER

Number.MIN_SAFE_INTEGER 代表在 JavaScript中最小的安全的integer型数字 (-(253 - 1))

  1. {
  2. console.log(Number.MIN_SAFE_INTEGER); // -9007199254740991
  3. console.log(-Math.pow(2, 53) - 1); // -9007199254740991
  4. }

Number.isSafeInteger()

Number.isSafeInteger() 方法用来判断传入的参数值是否是一个“安全整数”(safe integer)

  1. {
  2. console.log(Number.isSafeInteger(3)); // true
  3. console.log(Number.isSafeInteger(Math.pow(2, 53))); // true
  4. console.log(Number.isSafeInteger(Math.pow(2, 53) - 1)); // true
  5. console.log(Number.isSafeInteger(NaN)); // false
  6. console.log(Number.isSafeInteger(Infinity)); // false
  7. console.log(Number.isSafeInteger("3")); // false
  8. console.log(Number.isSafeInteger(3.1)); // false
  9. console.log(Number.isSafeInteger(3.1)); // false
  10. console.log(Number.isSafeInteger(3.0)); // true
  11. }

Math扩展

Math.trunc()

Math.trunc() 方法会将数字的小数部分去掉,只保留整数部分

  1. {
  2. console.log(Math.trunc(13.37)); // 13
  3. console.log(Math.trunc(42.84)); // 42
  4. console.log(Math.trunc(0.123)); // 0
  5. console.log(Math.trunc(-0.123)); // 0
  6. console.log(Math.trunc(true)); // 1
  7. console.log(Math.trunc(false)); // 0
  8. console.log(Math.trunc(NaN)); // NaN
  9. console.log(Math.trunc(undefined)); // NaN
  10. console.log(Math.trunc("foo")); // NaN
  11. console.log(Math.trunc()); // NaN
  12. }

Math.sign()

Math.sign() 函数返回一个数字的符号, 指示数字是正数,负数还是零 注: 此函数共有5种返回值, 分别是 1, -1, 0, -0, NaN. 代表的各是正数, 负数, 正零, 负零, NaN 传入该函数的参数会被隐式转换成数字类型

  1. {
  2. console.log(Math.sign(3)); // 1
  3. console.log(Math.sign(-3)); // -1
  4. console.log(Math.sign("-3")); // -1
  5. console.log(Math.sign(0)); // 0
  6. console.log(Math.sign(-0)); // -0
  7. console.log(Math.sign(NaN)); // NaN
  8. console.log(Math.sign(true)); // 1
  9. console.log(Math.sign(false)); // 0
  10. console.log(Math.sign("foo")); // NaN
  11. console.log(Math.sign()); // NaN
  12. }

Math.cbrt()

Math.cbrt() 函数返回任意数字的立方根

  1. {
  2. console.log(Math.cbrt(8)); // 2
  3. console.log(Math.cbrt(NaN)); // NaN
  4. console.log(Math.cbrt(-1)); // -1
  5. console.log(Math.cbrt(-0)); // -0
  6. console.log(Math.cbrt(-Infinity)); // -Infinity
  7. console.log(Math.cbrt(0)); // 0
  8. console.log(Math.cbrt(1)); // 1
  9. console.log(Math.cbrt(Infinity)); // Infinity
  10. console.log(Math.cbrt(null)); // 0
  11. console.log(Math.cbrt(2)); // 1.2599210498948734
  12. }