变量类型和计算的问题

85 阅读1分钟

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
    }
}