18-ES6(1)
第18课-ES6(1)
模块化
1.export和import
// model.js
export 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.js
import {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)) // true
console.log(Object is(+0, -0)) // false
console.log(NaN === NaN) // false
console.log(+0 === -0) // true