手记

ECMAScript6.0新特性介绍第五篇

本篇博客介绍ES6在数值方面的一些扩展。主要介绍在Number对象和Math对象方面的扩展,在Number对象上增加了isFinite(检查一个数值是否是有限的),isNaN(来判断一个数值是否是NaN)parseFloat,parseFloat(用于将字符串数值转成float类型和int类型),isInteger(判断一个数值是否是整数)。在Math对象上增加了17个与数学相关的方法,而且在ES6中除了可以表示十进制的数字以外,还增加了对二进制和八进制数值的表示方法。关于这些知识点的使用请参考如下代码:

  • 在ES6中表示二进制和八进制
/*ES6支持二进制和八进制的写法,
二进制是以ob或OB开头,八进制是以0O或者0o开头,以下代码均输出true*/
console.log(0b10000===16);
console.log(0B10000===16);
console.log(0o10===8);
console.log(0o10===8);
console.log('------------分割线-----------------');
//将二进制或者八进制转成10进制的数
console.log(Number(0b10000));//输出16
console.log(Number(0O10));//输出8
  • ES6在Number上提供的扩展方法
//Number.isFinite用来检查一个数值是否是有限的
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
console.log(Number.isFinite(null)); // false
console.log(Number.isFinite(undefined)); // false
//Number.isNaN() 用来检查一个值是否为 NaN 。
console.log('------------分割线-----------------');
console.log(Number.isNaN(NaN)) // true
console.log(Number.isNaN(19)) // false
console.log(Number.isNaN('15')) // false
console.log(Number.isNaN(true)) // false
console.log(Number.isNaN(10/NaN)) // true
console.log(Number.isNaN(1/0)) //false
console.log(Number.isNaN(undefined)) // false
console.log(Number.isNaN(null))// false
console.log(Number.isNaN(Infinity)) // false
console.log(Number.isNaN(-Infinity)) // false
//Number.parseFloat和Number.parseInt将字符串型的数字转成Float类型和Int类型;
let num1=Number.parseFloat('123.53#');
let num2=Number.parseInt('110');
console.log('num1='+num1);//输出:num1=123.53
console.log('num2='+num2);//输出:num2=110
//Number.isInteger() 用来判断一个值是否为整数
console.log(Number.isInteger(15)) // true
console.log(Number.isInteger(15.0)) // true
console.log(Number.isInteger(15.1)) // false
console.log(Number.isInteger("10")) // false
console.log(Number.isInteger(false)) // false
  • ES6在Math对象上面的扩展
//Math.trunc 方法用于去除一个数的小数部分,返回整数部分。
console.log(Math.trunc(10.1)) // 10
console.log(Math.trunc(-10.1)) // -10
console.log(Math.trunc(-0.0001)) // -0
console.log(Math.trunc('123.456')) // 123
console.log(Math.trunc('-123.456')) // -123
console.log(Math.trunc('-0.456')) // -0
console.log(Math.trunc('0.456')) // 0
console.log('-----------分割线----------------')
//Math.sign 方法用来判断一个数到底是正数、负数、还是零。
console.log(Math.sign(-10)) // -1
console.log(Math.sign(10))// +1
console.log(Math.sign(0)) // +0
//Math.cbrt 方法用于计算一个数的立方根
console.log('-----------分割线----------------')
console.log(Math.cbrt(-5)) // -125
console.log(Math.cbrt(5)) // 125
console.log(Math.cbrt(0)) //0
//指数运算
console.log(3**3);//输出27
console.log(3**4);//输出81

关于Math对象的方法还有很多,我这这里不可能一一列举,请大家能够举一反三的学习Math对象的用法。Number和Math就介绍到这,错误之处还请指出。

0人推荐
随时随地看视频
慕课网APP