数值的扩展
Number.isFinite()、Number.isNaN()
Number.isFinite()用来检验一个数值是否为有限的反回的值为true或者false
Number.isNaN() 用来校验是否为NaN 同样返回的值为true或者false
Number.parseInt()、Number.parseFloat()
ES6写法 Number.parseInt()取整数 ES5写法 parseInt()
ES6写法 Number.parseFloat()取得是float的值 ES5写法 parseFloat()
Number.isInteger()
Number.isFinite() 用来判断一个值是否为整数。
Number.EPSILON
这个是ES6在Number对象上面新增一个极小的常量。
安全整数和Number.isSafeInteger()
ES6引入了Number.MAX_SAFE_INTEGER 和Number.MIN_SAFE_INTEGER两个常量表示整数 范围在-2的53次方到2的53次方之间。
Math对象扩展
ES6在Math对象伤新增了17个与数学相关的方法。这些方法都是静态方法,只能在Math对象上调用
Math.trunc()
Math.trunc() 方法用于去除一个数的小数部分,返回整数部分。
Math.trunc('12.13') //12
Math.sign()
Math.sign() 方法用来判断一个数到底是正数、负数,还是零。对于非数值,会先将其转换为数值。
- 参数为正数,返回+1
- 参数为负数,返回-1
- 参数为零,返回0
- 参数为-0,返回-0
- 其他值,返回NaN
Math.sign(-5) // -1
Math.sign(5) // +l
Math.sign(O) // +O
Math.sign(-0) // -0
Math . sign(NaN) //NaN
Math.cbrt() 方法用于就按一个数的立方根
Math.clz32() 方法只考虑整数部分 。对于空值或者其它类型的值,Math,clz32方法会将他们先转为数值
Math.imul() 方法返回两个数以32位带符号正数形式相乘的结果,返回的也是一个32位带符号整数、
Math.fround() 方法返回一个数的单精度浮点数形式。
Math.hypot() 方法返回所有参数的平分和的平方根
对数方法 (对数这个概念可能是学过但是也忘记了就很懵)
Math.expm1() Math.expml(x)返回ex寸,即Math.exp(x)-l
Math.log1p() Math.log1p(x)方法返回ln(1+x),即Math.log(1+x) 如果x小于 -1,返回的是NAN
Math.log10() Math.log10()返回以10 为底的x的对数。如果x小于0,则返回NaN
Math.log2() Math.log2() 返回以2为底的x的对数。如果x小于0则返回的是NaN
(找到了对数的定义:对数公式是数学中的一种常见公式,如果a^x=N(a>0,且a≠1),则x叫做以a为底N的对数,
记做x=log(a)(N),其中a要写于log右下。其中a叫做对数的底,N叫做真数。通常我们将以10为底的对数叫做常
用对数,以e为底的对数称为自然对数。)
双曲函数方法
- Math.sinh(x) 返回x的双曲正弦
- Math.cosh(x) 返回x的双曲余弦
- Math.tanh(x) 返回x的反双曲正弦
- Math.asinh(x) 返回dx的反双曲正弦
- Math.acosh(x) 返回x的反双曲余弦
- Math.atanh(x) 返回x的双曲正切
Math.signbit()
Math.sign()用来判断一个值得正负但是这个数如果是-0它返回的也是-0
Math.signbit()判断就是返回的true或者false 当为-(负)的时候返回的为true-0也会返回true
该方法的算法如下
- 如果参数是NaN,返回false
- 如果参数是 -0,返回true
- 如果参数是负值,返回true
指数运算
ES6新增的指数运算符(**)
2 ** 2 // 4
let a = 2
a **=2 // 等同于 a = a * a
let b = 2
b ** =3 // 等同于 b= b*b*b
Integer数据类型
和java的类似都是整数类型用来表示整数,但是没有位数的限制,对于任何整数都可以精确表示。
Integer类型为了与Number类型区别,Integer类型的数据必须使用后缀n来表示
typeof后的返回值也会是Integer
Integer类型的 + - * / 这几个运算与Number类型的行为一致。(除法算法会舍去小数的部分返回小数前面的整数)
但是Integer类型不能和Number类型混合运算