1、数值拓展
Number.EPSILON
function equal(a,b){
if(Math.abs(a-b) < Number.EPSILON){
return true;
} else {
return false;
}
}
console.log(0.1+0.2 === 0.3)//false
console.log(equal(0.1+0.2, 0.3))//true
//二进制 (0b开头)和八进制(0o开头)
//Number.isFinite() 检测一个数是不是有限数
//Number.isNaN() 检测一个数是不是NaN
//Number.parseInt() 字符串转换为int
//Number.parseInt() 转换为浮点数
//Number.isInterger(1) 是不是整数
//Math.trunc(3.5)//将数字去掉小数部分
//Math.sign()//判断是正数、负数、还是0
2、对象方法的扩展
1、Object.is 判断两个值是否完全相等
Object.is(NaN,NaN)//相等
NaN === NaN//不相等
2、Object.assgin 对象的合并
Object.assgin(obj1,obj2);
3、Object.setPrototypeOf 设置原型对象
const person = {
name:'xiaoyu'
}
const message = {
xingbie: 'nv',
love:'nan'
}
Object.setPrototypeOf(person,message);
//设置
Object.getPrototypeOf(person);//获取
3、模块化
防止命名冲突
代码可复用
维护性高
export(规定对外接口) 和 import(输入其他模块的功能)
示例:
m1.js
export let name = 'xiaoyu';
index.html
<script type="module">
import * as m1 from './src/m1.js';
console.log(m1);
</script>