数值的扩展
上期我们讲解了运算符相关的内容,这期我们讲解数值的相关扩展。
目录
1、二进制和八进制表示法
ES6 提供了⼆进制和⼋进制数值的新的写法,分别⽤前缀0b(或0B)和0o(或0O)表示。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
console.log(0b10100);//20
console.log(0b101);//5
</script>
</body>
</html>
2、Number.isFinite(), Number.isNaN()
- ES6 在Number对象上,新提供了Number.isFinite()和Number.isNaN()两个⽅法
- Number.isFinite()⽤来检查⼀个数值是否为有限的(finite),即不是Infinity。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
//注意,如果参数类型不是数值,Number.isFinite⼀律返回false。
Number.isFinite(15); // true
Number.isFinite(0.8); // true
Number.isFinite(NaN); // false
Number.isFinite(Infinity); // false
Number.isFinite(-Infinity); // false
Number.isFinite('foo'); // false
Number.isFinite('15'); // false
Number.isFinite(true); // false
</script>
</body>
</html>
- Number.isNaN()⽤来检查⼀个值是否为NaN。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
//如果参数类型不是NaN,Number.isNaN⼀律返回false。
Number.isNaN(NaN) // true
Number.isNaN(15) // false
Number.isNaN('15') // false
Number.isNaN(true) // false
Number.isNaN(9/NaN) // true
Number.isNaN('true' / 0) // true
Number.isNaN('true' / 'true') // true
</script>
</body>
</html>
3、Number.parseInt(), Number.parseFloat()
- ES6 将全局⽅法parseInt()和parseFloat(),移植到Number对象上⾯,⾏为完全保持不变。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
// ES5的写法
parseInt('12.34') // 12
parseFloat('123.45#') // 123.45
// ES6的写法
Number.parseInt('12.34') // 12
Number.parseFloat('123.45#') // 123.45
</script>
</body>
</html>
- 这样做的⽬的,是逐步减少全局性⽅法,使得语⾔逐步模块化。
Number.parseInt === parseInt // true
Number.parseFloat === parseFloat // true
4、Number.isInteger()
- Number.isInteger()⽤来判断⼀个数值是否为整数。
Number.isInteger(25) // true
Number.isInteger(25.1) // false
5、Math 对象的扩展
- ES6 在 Math 对象上新增了 17 个与数学相关的⽅法。所有这些⽅法都是静态⽅法,只能在 Math 对象上调⽤。
- 具体详⻅⼿册
总结
本文讲解了对数值的扩展相关的内容,下一期我们讲解函数的扩展。