ES6(12)、新增的API(下)
新增API序列表:
1、String.prototype.includes 2、String.prototype.repeat
3、String.prototype.startsWith 4、String.prototype.endsWith
5、Number.EPSILON 6、Number.isInteger
7、Number.isSafeInteger 8、Number.isFinite
9、Number.isNaN(‘NaN’) // false 10、Math.acosh
11、Math.hypot 12、Math.imul
13、Math.sign 14、Math.trunc
1、String.prototype.includes
1.png方法用于判断一个字符串是否包含在另一个字符串中,根据情况返回 true 或 false。
判断字符是否在字符串中,类似的方法有很多:
(1)、利用indexOf
2.png
(2)、利用search
3.png
(2)、利用match
4.png
2、String.prototype.repeat
5.pngrepeat() 构造并返回一个新字符串,该字符串包含被连接在一起的指定数量的字符串的副本。
3、String.prototype.startsWith
6.png方法用来判断当前字符串是否以另外一个给定的子字符串开头,并根据判断结果返回 true 或 false。
4、String.prototype.endsWith
8.png方法用来判断当前字符串是否是以另外一个给定的子字符串“结尾”的,根据判断结果返回 true 或 false。
其他方法:利用lastIndexOf()也可以实现
9.png
5、Number.EPSILON
Number.EPSILON
属性表示 1 与Number
可表示的大于 1 的最小的浮点数之间的差值。
var i=0;
while(i != 1){
i+=0.1
console.log(i)
if(i>20) break;
}
console.log('i is 1')
打印出:
10.png
导致这个原因是因为小数浮点数精度问题,要解决问题可以利用下面方法:
方法1:可以自己给定的一个差值进行判断
var i=0;
while(Math.abs(i-1)<0.000001){
i+=0.1
console.log(i)
if(i>20) break;
}
console.log('i is 1') // 打印出:i is 1
方法2:利用Number.EPSILON表示能达到的最小差值
var i=0;
while(Math.abs(i-1)<Number.EPSILON){
i+=0.1
console.log(i)
if(i>20) break;
}
console.log('i is 1')
6、Number.isInteger
11.png方法用来判断给定的参数是否为整数。
7、Number.isSafeInteger
12.png方法用来判断传入的参数值是否是一个“安全整数”(safe integer)
8、Number.isFinite
13.png方法用来检测传入的参数是否是一个有穷数
9、Number.isNaN()
方法确定传递的值是否为
NaN
并且检查其类型是否为Number
。它是原来的全局isNaN()
的更稳妥的版本。
NaN
最特殊的地方就是,我们不能使用相等运算符==
和 ===
来判断一个值是否是 NaN
,因为 NaN == NaN
和 NaN === NaN
都会返回 false
。因此,必须要有一个判断值是否是 NaN
的方法。
和全局函数 isNaN()
相比,Number.isNaN()
不会自行将参数转换成数字,只有在参数是值为 NaN
的数字时,才会返回 true
。
10、Math.acosh
15.png函数返回一个数的反双曲余弦值
当参数小于1时, Math.acosh()
将返回 NaN
11、Math.hypot
函数返回所有参数的平方和的平方根
Math.hypot(3, 4); // 5
Math.hypot(3, 4, 5); // 7.0710678118654755
Math.hypot(); // 0
Math.hypot(NaN); // NaN
Math.hypot(3, 4, 'foo'); // NaN, +'foo' => NaN
Math.hypot(3, 4, '5'); // 7.0710678118654755, +'5' => 5
Math.hypot(-3); // 3, the same as Math.abs(-3)
12、Math.imul
该函数将两个参数分别转换为 32 位整数,相乘后返回 32 位结果
Math.imul(2, 4) // 8
Math.imul(-1, 8) // -8
Math.imul(-2, -2) // 4
Math.imul(0xffffffff, 5) //-5
Math.imul(0xfffffffe, 5) //-10
13、Math.sign
函数返回一个数字的符号, 指示数字是正数,负数还是零。
Math.sign(3); // 1
Math.sign(-3); // -1
Math.sign("-3"); // -1
Math.sign(0); // 0
Math.sign(-0); // -0
Math.sign(NaN); // NaN
Math.sign("foo"); // NaN
Math.sign(); // NaN
此函数共有5种返回值, 分别是 1, -1, 0, -0, NaN. 代表的各是正数, 负数, 正零, 负零, NaN。
14、Math.trunc
方法会将数字的小数部分去掉,只保留整数部分。
Math.trunc(13.37) // 13
Math.trunc(42.84) // 42
Math.trunc(0.123) // 0
Math.trunc(-0.123) // -0
Math.trunc("-1.123") // -1
Math.trunc(NaN) // NaN
Math.trunc("foo") // NaN
Math.trunc() // NaN
和parseInt()最大区别是,parseInt超过一定的有限位数,输出的是一个bug,而Math.trunc不会出错,能将其转成科学计算法。
16.png