这是该系列的第16篇笔记!
1,二进制和八进制表示法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>二进制和八进制表示法</title>
</head>
<body>
<script>
// ES6提供了二进制和八进制的新写法
// 二进制:用前缀0b(或0B) 表示
console.log(0b111110111);
// 八进制:用前缀0o(或0O)表示
console.log(0o767);
// ES5开始,严格模式中,八进制就不在允许使用前缀0表示,ES6进一步明确,要使用前缀0o表示
// (function(){
// 'use strict';
// console.log(0o11 === 011); // 报错
// })()
// 转化为十进制数值 --> Number()方法
console.log(Number(0b111110111));
</script>
</body>
</html>
2,isFinite() isNaN()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>isFinite() isNaN()</title>
</head>
<body>
<script>
// ES6在Number对象上新增加了两个方法:Number.isFinite() && Number.isNaN()
// Number.isFinite() --> 检查一个数值是否为有限的
console.log(Number.isFinite(123)); // 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('-----------');
// ES5部署Number.inFinite()方法
(function(global){ // 见书86-87!
// ....
})(this)
// Number.isNaN() --> 检查一个值是否为NaN
console.log(Number.isNaN(123));
console.log(Number.isNaN('123'));
// 以下结果都为true
console.log(Number.isNaN(NaN));
console.log(Number.isNaN(9/NaN));
console.log(Number.isNaN('true'/ 0));
console.log('true'/ 0);
console.log(Number.isNaN('true'/ 'true'));
// ES5部署Number.inNaN()方法
(function(global){ // 见书86-87!
// ....
})(this)
console.log(9/0); // Infinity
// 新方法与传统的全局方法(自己部署书写)相比,区别在于:
// 传统方法 --> 先调用Number()将非数值的转为数值,在进行判断
// 新增方法 --> 只对数值有效,对于非数值一律返回false。Number.isNaN()只有对NaN才返回true,非NaN一律返回false
</script>
</body>
</html>
3,parseInt() parseFloat()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>parseInt() parseFloat()</title>
</head>
<body>
<script>
// ES6将全局方法parseInt() parseFloat()移植到Number对象上,行为完全保持不变
// ES5
console.log(parseInt('12.43'));
console.log(parseFloat('1212#'));
// ES6
console.log(Number.parseInt('12.43'));
console.log(Number.parseFloat('1212#'));
// 移植目的:减少全局性方法,使得语言逐步模块化
console.log(Number.parseFloat === parseFloat); // true
</script>
</body>
</html>
4,isInteger()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>isInteger()</title>
</head>
<body>
<script>
// Number.isInteger() --> 判断一个值是否为整数
// 【注意】在JavaScript内部,整数和浮点数都是同样的存储方法,所以3和3.0被视为一个值
console.log(3 === 3.0); // true
console.log(Number.isInteger(23)); // true
console.log(Number.isInteger(23.00)); // true
// 以下结果为false
console.log(Number.isInteger(23.01));
console.log(Number.isInteger('23.00'));
console.log(Number.isInteger(true));
// ES5代码部署Number.isInteger()
(function(global){ // 见书88!
// ....
})(this)
</script>
</body>
</html>
让学习“上瘾”,成为更好的自己!!!