2020-10-09

                                                      常见的es6语法糖

 

1、模板字符串 `` 可换行,可使用${}插值

let name = 'heimi'
let str = `<div>
            <p>${name}</p>
        </div>`

2、解构赋值 左右两边格式相同

let obj = {
    name1: 'heima',
    age: 19,
}
let { name1, age } = obj
console.log(name1, age);

3、扩展运算符 ...

let arr = [1, 3, 5]
let newa = [...arr]
console.log(newa);

4、深拷贝

let obj = {
    name: 'heima',
    age: 19,
    info: {
        add: 'hahas'
    },
    n: null,
    un: undefined,  //丢失
    fn: function () { //丢失
    },
    s: Symbol('1')  //丢失
}
let newO = JSON.parse(JSON.stringify(obj))
newO.info.add = 'eee'
console.log(obj, newO);

let arr = [1, 2, 3]
let newa = arr.slice(0)
newa.push({ 213: 343 })
console.log(newa, arr);

5、实现一个深拷贝

let obj = {
    name: 'heima',
    age: 10,
    info: {
        add: 'aa'
    }
}
let arr = [1, 2, 34]
const deepClone = (obj) => {
    if (obj === null) return obj
    if (typeof obj !== 'object') return obj
    const newObj = new obj.constructor
    for (let key in obj) {
        newObj[key] = deepClone(obj[key])
    }
    return newObj
}

// let Newobj = deepClone(obj)
// Newobj.info.add='xx'
// console.log(Newobj,obj);

let newArr = deepClone(arr)
newArr.push([21, 43])
console.log(newArr, arr);

6、set 去重

let arr = [1, 2, 3, 3, 2, 1]
let set = new Set([...arr])
set.add(6)
console.log(set.has(2));
set.delete(3)
set.clear()
console.log(set);

7、forEach 不能中断 for in for of

let arr = [1, 2, 3, 4, 6]
arr.forEach((key, index) => {
    if (key === 2) {
        return
    }
    console.log(key, index);
})

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值