# 值类型和引用类型

# 常见的值类型

undefined、number、string、boolean、Symbol

# 常见的引用类型

Object、Array、null、function

# typeof 能判断哪些类型

  • 判断所有值类型
  • 识别函数: typeof function() {} // 'function'
  • 判断是否是引用类型(不可在细分)

# 深拷贝

/**
 * 
 * @param {Object} obj 要拷贝的对象
 */
function deepClone(obj = {}) {
  if (typeof obj !== 'object' || obj === null) {
    return obj
  }
  let result
  if (obj instanceof Array) {
    result = []
  } else {
    result = {}
  }
  for(let key in obj) {
    // 保证 key 不是原型的属性
    if(obj.hasOwnProperty(key)) {
      result[key] = deepClone(obj[key])
    }
  }
  return result
}

评 论:

更新: 11/21/2020, 7:00:56 PM