js基础学习总结

1、js变量提升

  var 会导致变量提升,在下方定义的a,在前面依旧可以读取

console.log(a)  // 1
var a = 1

  let、const 不会导致变量提升,代码从上往下执行

console.log(a) // 会报错
let a = 1
console.log(a) // 1

2、深拷贝和浅拷贝

简单数组(一层)的深拷贝,可以用slice或者concat就可以实现,这里就不一一举例了,下面我们直接亮出完全深拷贝的方法,自己copy过去测哈

// source:为源数据
function deepClone(source) {
  if (!source && typeof source !== 'object') {
    throw new Error('error arguments', 'deepClone')
  }
  const targetObj = source.constructor === Array ? [] : {}
  Object.keys(source).forEach(keys => {
    if (source[keys] && typeof source[keys] === 'object') {
      targetObj[keys] = deepClone(source[keys])
    } else {
      targetObj[keys] = source[keys]
    }
  })
  return targetObj
}

3、积累中,待续。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值