第18课-ES6(1)
模块化
1.export和import
// model.jsexport default let m = 1;// 出错export default n = 2;let func1 = value => console.log(`func1 ${value}`)let func2 = value => console.log(`func2 ${value}`)export {func1, func2}
// test.jsimport {func1, func2} from "model.js"import m from "model.js"func1(m)func2(m)
扩展运算符spread(...)
let arr = [1, 2, [4, 5, 6], 3]console.log(arr[0], arr[1], arr[2], arr[4])// 相当于console.log(...arr)let arr2 = [7, 8, 9]// 两个数组合并console.log([...arr,...arr2]);// [1, 2, [4, 5, 6], 3, 7, 8, 9]
"..."只拆分数组中的一层
Object.assign方法
改方法用于合并几个对象, 并将结果赋值给第一个参数传入的对象
let o = {}let obj = Object.assign(o, {a: 'a'}, {b: 1})console.log(obj) // {a: 'a', b: 1}console.log(o) // {a: 'a', b: 1}
Object.is方法
ES6提出“Same-value equality”(同值相等)算法,用来解决这个问题。Object.is就是部署这个算法的新方法。它用来比较两个值是否严格相等,与严格比较运算符(===)的行为基本一致。
Object.is和===相比, 除了对NaN以及+0和-0的比较外, 其他一致
console.log(Object.is(NaN, NaN)) // trueconsole.log(Object is(+0, -0)) // falseconsole.log(NaN === NaN) // falseconsole.log(+0 === -0) // true