引用類(lèi)型有哪些?非引用類(lèi)型有哪些
- 引用類(lèi)型值(對(duì)象、數(shù)組、函數(shù)、正則():指的是那些保存在堆內(nèi)存中的對(duì)象,變量中保存的實(shí)際上只是一個(gè)指針,這個(gè)指針執(zhí)行內(nèi)存中的另一個(gè)位置,由該位置保存對(duì)象。
- 非引用類(lèi)型
非引用類(lèi)型(基本類(lèi)型值)(數(shù)值、布爾值、null和undefined):指的是保存在棧內(nèi)存中的簡(jiǎn)單數(shù)據(jù)段;
如下代碼輸出什么?為什么?
代碼1.jpg
1答案.jpg
如下代碼輸出什么? 為什么?
代碼2.jpg
2答案.jpg
如下代碼輸出什么? 為什么?
3.jpg
3答案.jpg
過(guò)濾如下數(shù)組,只保留正數(shù),直接在原數(shù)組上操作
代碼4.jpg
4答案.jpg
過(guò)濾如下數(shù)組,只保留正數(shù),原數(shù)組不變,生成新數(shù)組
代碼5.jpg
5答案.jpg
寫(xiě)一個(gè)深拷貝函數(shù),用兩種方式實(shí)現(xiàn)
方法1
function deepCopy(oldObj) {
var newObj = {};
for(var key in oldObj) {
if(typeof oldObj[key] === 'object') {
newObj[key] = deepCopy(oldObj[key]);
}else{
newObj[key] = oldObj[key];
}
}
return newObj;
}
方法2
function deepCopy2(obj){
return JSON.parse(JSON.stringify(obj));
}
var obj3 = {
name:"ruoyu",
age:20
}
var obj4 = deepCopy2(obj3);
console.log(obj4);
obj3.age = 33;
console.log(obj4.age);