0
点赞
收藏
分享

微信扫一扫

Javascript(笔记42) - ES6特性 - 数值扩展

数值扩展


00) Number.EPSILON 

是 javascript 表示的最小精度

console.log(Number.EPSILON);   // 2.220446049250313e-16

javascript 是浮点运算,会出现经典的  0.1 + 0.2 的问题;

Javascript(笔记42) - ES6特性 - 数值扩展_ES6

我们写个函数 equal ,来判断两个值之间的差少于 Number.EPSILON 就认为他俩相等;

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

01) 二进制和八进制

ES6 引入了二进制和八进制表示数值;

let b = 0b1010;   // 10   二进制
let o = 0o777; // 517 八进制
let x = 0xff; // 255 十六进制

02)Number.isFinite

检测一个数值是否为有限数;

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

03) Number.isNaN

检测一个数值是否为 NaN;

和全局函数 isNaN() 相比,Number.isNaN() 不会自行将参数转换成数字,只有在参数是值为 NaN 的数字时,才会返回 true。

console.log(Number.isNaN(NaN));         // true
console.log(Number.isNaN(Number.NaN)); // true
console.log(Number.isNaN(0 / 0) ); // true

console.log(Number.isNaN(123)); // false
console.log(Number.isNaN(null)); // false
console.log(Number.isNaN(undefined)); // false
console.log(Number.isNaN("true")); // false

04) Number.parseInt  Number.parseFloat

字符串转整数

这个方法和全局的 parseInt() 函数具有一样的函数功能:

console.log(Number.parseInt('3223Love'));     //  3223
console.log(Number.parseInt('3.14159神奇')); // 3

05)Number.isInteger

判断一个数是否为整数

console.log(Number.isInteger(5));    // true
console.log(Number.isInteger(5.5)); // false

06)Math.trunc 

将数字的小数部分抹掉

console.log(Number.trunc(3.5));     //  3

07)Math.sign 

判断一个数到底为正数、负数还是零;

正数返回 1;

零返回 0 ;

负数返回 -1;

console.log(Math.sign(3.5));       // 1
console.log(Math.sign(0)); // 0
console.log(Math.sign(-200)); // -1







举报

相关推荐

0 条评论