es6 数值的扩展

数值的扩展

      • Number.isNaN()
      • Number.isFinite()
      • Number.parseInt()
      • Number.parseFloat()
      • Number.isInteger()
      • Number.EPSILON
      • Math...
      • 指数运算符`(**)`

Number.isNaN()

传统的isNaN()函数会把非数值的参数转化成数值再进行判断

	isNaN('str'); // true 
	// 'str'无法转为一个数值,返回true    

Number.isNaN()函数:用于判断传入的是否是非数值,

注意:是判断非数值,而不是判断数值,如果参数类型不是NaN,Number.isNaN一律返回false

	Number.isNaN(NaN) // true
	Number.isNaN(10) // false
	Number.isNaN('11') // false
	Number.isNaN(true) // false
	Number.isNaN(2/NaN) // true
	Number.isNaN('true' / 0) // true
	Number.isNaN('true' / 'true') // true

Number.isFinite()

传统的isFinite()函数会把非数值的参数转化成数值再进行判断

	isFinite('22'); // true 
	// '22'转为一个数值22,返回true   

Number.isFinite()函数:用来检查一个数值是否为有限的(finite),即不是无穷大(Infinity)

注意:如果参数类型不是数值,Number.isFinite一律返回false

	Number.isFinite(1); // true
    Number.isFinite(Infinity); //false
	Number.isFinite(NaN); // false
	Number.isFinite(Infinity); // false
	Number.isFinite(-Infinity); // false
	Number.isFinite('abc'); // false
	Number.isFinite('111'); // false
	Number.isFinite(true); // false	

Number.parseInt()

Number.parseInt()函数:解析一个字符串,返回一个整数。parseInt函数同样是从window对象下移植到Number对象下,但是它的作用没有任何变化

	// ES5的写法
	parseInt('12.34') // 12
	
	// ES6的写法
	Number.parseInt('12.34') // 12

Number.parseFloat()

Number.parseFloat()函数:解析一个字符串,并返回一个浮点数。跟parseFloat一样,被移植到Number对象下,作用保持不变

	// ES5的写法
	parseFloat('123.45#') // 123.45
	
	// ES6的写法
	Number.parseFloat('123.45#') // 123.45

Number.isInteger()

Number.isInteger()用来判断一个数值是否为整数。

	Number.isInteger(11); // true
	Number.isInteger(11.11); // false

注意1:在javascript内部对整数和浮点数采用一样的存储方式,因此小数点后如果都是0的浮点数,都会被认为是整数

	Number.isInteger(1.0); // true
	Number.isInteger(1.00); // true

注意2:如果参数不是数值,Number.isInteger返回false

	Number.isInteger() // false
	Number.isInteger(null) // false
	Number.isInteger('15') // false
	Number.isInteger(true) // false

Number.EPSILON

Number.EPSILON常量定义一个极小的常量。根据规格,它表示 1 与大于 1 的最小浮点数之间的差。

	Number.EPSILON
	// 2.220446049250313e-16

Number.EPSILON的出现是用来判断浮点数的计算误差,如果浮点数计算得到的误差不超过Number.EPSILON的值,就表示可以接受这样的误差。

Math…

ES6给Math对象新增了17个函数,就不一一解释,因为平时用到不多。

指数运算符(**)

	2 ** 2  // 4
	2 ** 3  // 8

这个运算符的一个特点是右结合,而不是常见的左结合。多个指数运算符连用时,是从最右边开始计算的。

	// 相当于 2 ** (3 ** 2)
	2 ** 3 ** 2
	// 512

指数运算符可以与等号结合,形成一个新的赋值运算符(**=)

	let a = 1.5;
	a **= 2;
	// 等同于 a = a * a;
	
	let b = 4;
	b **= 3;
	// 等同于 b = b * b * b;	

详细内容请访问------阮一峰的es6入门

你可能感兴趣的:(ES6)