// 数值扩展
console.log(Number.EPSILON);
console.log(0.2 + 0.1 === 0.3);
let b = 0b11010
let o = 0o1732
console.log(b,o);
console.log(Number.isFinite(Infinity));
console.log(Number.isNaN(111));
console.log(Number.parseInt('3.14sss'));
console.log(Number.parseFloat('3.14sss'));
数值扩展:
- Number.EPSILON:js表示的最小精度;可以用于判断两个数值的差小于它,就表示两者相等;
- 进制:二进制0b开头,八进制0o开头;0x十六进制;
- Number.isFinite:检查一个数值是否是有限数值,返回true和false;
- Number.isNaN:检查数值是否为NaN;返回true和false;
- Number.parseInt和Number.parseFloat:字符串转整数截取;
- Number.isInteger:判断是否为整数;
- Math.trunc():将数字的小数去掉;
- Math.sign():判断一个数值是正数返回1,负数返回-1,0返回0;
// 对象扩展
console.log(Object.is(120, 121));
let obj1 = {
name: 'zhangsan',
age: 19,
sex:'男',
game: 4
}
let obj2 = {
name: 'wangwu',
age: 19,
sex:'女',
girl: true
}
console.log(Object.assign(obj1, obj2));
console.log(Object.assign(obj2, obj1));
-
对象方法扩展:
- Object.is:判断两个值是否完全相等;
- Object.assign:对象的合并;
- Object.setPrototypeOf和ObjectgetPrototypeOf:设置原型对象和获取原型对象;
-
模块化:
- 将一个大的程序文件,拆分成许多小的文件,然后再将文化组合起来;
- 好处:防止命名冲突,代码复用,高维护性;
- export:需要暴露的数据,import导入一个模块;