typeof能判断那些类型
typeof 能判断值数据类型 无法判断准确的引用数据类型 可以判断是否为函数类型
==和===在什么时候使用
== 表示相等,比较的两个参数使用==时,先判断数据类型,不相等时进行类型转换,再比较
=== 表示严格相等,两个参数使用===时,若数据类型不相等,则直接false,更加严谨。
值类型和引用类型的区别
值类型直接保存在堆内存中,复制时开辟新的堆内存空间保存数据
引用类型则保存在栈内存中,堆内存保存指向栈内存地址的指针,复制时仅复制堆内存的指针
手写深拷贝
function clone (obj) {
if( typeof obj === 'object'){
let cloneObj = Array.isArray(obj) ? [] : {}
for(let key in obj){
cloneobj[key] = clone(obj[key])
}
return cloneObj
} else {
return obj
}
}