ES6学习笔记(七)之数值的扩展3

Math 对象的扩展

  1. Math.trunc() :去除一个数的小数部分,返回整数。
    注:非数值则先转为数值、空值和无法截取到整数的值一律返回NaN。
console.log(Math.trunc(-1.99999)); // -1
console.log(Math.trunc('1.99999')); // 1
// NaN
console.log(Math.trunc('a'));
console.log(Math.trunc(NaN));
console.log(Math.trunc());
  1. Math.sign():用来判断一个数是整数、负数,还是零。
    返回值情况:
  • 非数值则先转为数值;
  • 参数为正数,返回1;
  • 参数为负数,返回-1;
  • 参数为0,返回0;
  • 参数为-0,返回-0;
  • 参数为其他值,返回NaN;
// 1
console.log(Math.sign(9));
console.log(Math.sign(5.55));
// -1
console.log(Math.sign(-9));
// 0
console.log(Math.sign(0));
// -0
console.log(Math.sign(-0));
// NaN
console.log(Math.sign('aa'));
console.log(Math.sign(NaN));
  1. Math.cbrt():用来计算一个数的立方根。
    注:非数值则先转为数值;
console.log(Math.cbrt(Infinity)); // Infinity
console.log(Math.cbrt('8')); // 2
console.log(Math.cbrt(8)); // 2
console.log(Math.cbrt(NaN)); // NaN
console.log(Math.cbrt(true)); // 1
  1. Math.clz32():用来计算32位整数的前导0的数量。
  • 参数为小数情况下,只考虑整数部分;
  • 参数为空值或其它类型值,一律转为数值再进行计算;
  • 左移运算符与该方法直接相关(例:1<<2)
console.log(Math.clz32(9.555)); //28
console.log(Math.clz32('9')); //28
console.log(Math.clz32(1));   //31
console.log(Math.clz32(1 << 1)); //30
  1. Math.imul():计算两个以32位带符号整数相乘的结果。
    目的:由于大数值相乘,低位数往往不精确,该方法可以返回正数的低位数值。
//乘积超过了2的53次方,JavaScript无法保存额外精度,所以低位的值都变成0
console.log((0x7fffffff * 0x7fffffff) | 0);//0 

console.log(Math.imul(0x7fffffff, 0x7fffffff) | 0);//1
  1. Math.fround():返回一个数的单精度浮点数。
    注:参数为小数时,返回小数最接近的单精度浮点数。
console.log(Math.fround(1.4));// 1.399999976158142
console.log(Math.fround(1.5));// 1.5
console.log(Math.fround(NaN));// NaN
console.log(Math.fround(Infinity));// Infinity
console.log(Math.fround(0));// 0
  1. Math.hypot():返回所有参数平方和的平方根。
  • 非数值则先转为数值;
  • 只要有一个参数无法转为数值,则返回NaN;
console.log(Math.hypot(0, 5, 3)); //5.8309518948453
console.log(Math.hypot(0, '5'));// 5
console.log(Math.hypot(0, 5, 'a'));// NaN
console.log(Math.hypot(0, 5, NaN));// NaN
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值