1.引用类型有哪些?非引用类型有哪些
基本类型值(数值、字符串、布尔值、null和undefined):指的是保存在栈内存中的简单数据段;
引用类型值(对象、数组、函数、正则):指的是那些保存在堆内存中的对象,变量中保存的实际上只是一个指针,这个指针执行内存中的另一个位置,由该位置保存对象
2、
Paste_Image.png
console.log(obj1 == obj2);输出:false,obj1和obj2分别是指一个指针,指向不同的地址
console.log(obj1 = obj2);输出:object{a:1,b=2}将obj2赋值给obj1
console.log(obj1 == obj2);输出:true经过obj1 = obj2后,两个指向相同的地址
3、
Paste_Image.png
Paste_Image.png
4、
Paste_Image.png
Paste_Image.png
5、
Paste_Image.png
6、
Paste_Image.png
7、
方法一:
function deepCopy(obj){
var newObj={};
for(key in obj){
if(typeof obj[key]==="number" || typeof obj[key]==="string" || typeof obj[key]==="boolean"
|| obj[key]===undefined || obj[key]===null){
newObj[key]=obj[key];
}
else{
newObj[key]=deepCopy(obj[key]);
}
}
return newObj;
方法二:
function deepCopy(obj){
var newObj={};
var newArr=[];
newArr=JSON.stringify(obj);
newObj=JSON.parse(newArr);
return newObj;
}