十七、数值扩展

郁子小于 1 分钟约 298 字笔记ECMAScript尚硅谷李强

(一)Number.EPSILON

  • JavaScript 表示的最小精度
  • EPSILON 属性值接近于 2.2204460492503130808472633361816E-16
console.log(Number.EPSILON);
// 2.220446049250313e-16

console.log(0.1 + 0.2);
// 0.30000000000000004

console.log(0.1 + 0.2 === 0.3);
// false

function equal(a, b) {
  if (Math.abs(a - b) < Number.EPSILON) return true;
  else return false;
}
console.log(equal(0.1 + 0.2, 0.3));
// true

(二)二进制和八进制

let b = 0b1010;
console.log(b);
// 10=0*2^0+1*2^1+0*2^2+1*2^3

let o = 0o777;
console.log(o);
// 511=7*8^0+7*8^1+7*8^2

let d = 100;
console.log(d);
// 100

let x = 0xff;
console.log(x);
// 255=15*16^0+15*16^1

(三)Number.isFinite

  • 检测一个数值是否为有限数
console.log(Number.isFinite(100));
// true

console.log(Number.isFinite(100 / 0));
// false

console.log(Number.isFinite(Infinity));
// false

(四)Number.isNaN

  • 检测一个数值是否为 NaN
console.log(Number.isNaN(123));
// false

(五)Number.parseInt && Number.parseFloat

  • 字符串转整数/浮点数
console.log(Number.parseInt("521314love"));
// 521314

console.log(Number.parseFloat("3.1415926535神奇"));
// 3.1415926535

(六)Number.isInteger

  • 判断一个数是否为整数
console.log(Number.isInteger(5));
// true

console.log(Number.isInteger(2.5));
// false

(七)Math.trunc

  • 将数字的小数部分抹掉
console.log(Math.trunc(3.5));
// 3

(八)Math.sign

  • 判断一个数到底是正数=>1、负数=>-1 还是 0=>0
console.log(Math.sign(-20000));
// -1

console.log(Math.sign(0));
// 0

console.log(Math.sign(100));
// 1
上次编辑于: