引用類型和對象拷貝

  1. 引用類型有哪些叼丑?非引用類型有哪些关翎?
    非引用類型有number、string鸠信、boolean纵寝、undefined、null
    引用類型有function星立、object爽茴、array和正則表達式
  2. 如下代碼輸出什么?為什么
var obj1 = {a:1, b:2};
var obj2 = {a:1, b:2};
console.log(obj1 == obj2);  //false  兩個對象雖然內(nèi)容一樣但是在內(nèi)存中開辟的地址卻不同
console.log(obj1 = obj2);   //{a:1,b:2}  將指向obj2的指針復制給obj1  
console.log(obj1 == obj2);  //true 兩個對象的指針相同绰垂,只想同一個地址
  1. 如下代碼輸出什么? 為什么室奏、
var a = 1
var b = 2
var c = { name: '饑人谷', age: 2 }
var d = [a, b, c]

 var aa = a    //將a的值復制給了aa但是a沒變
var bb = b    //將b的值復制給了bb但是b沒變
var cc = c    //將c的地址給了cc
var dd = d    //將d的地址給了dd

 a = 11
b = 22
c.name = 'hello'
d[2]['age'] = 3

 console.log(aa)   //1    
console.log(bb)   //2
console.log(cc)   //{name:'hello',age:2}
console.log(dd)   //[1,2,Object {name: "hello", age: 3}]
  1. 如下代碼輸出什么? 為什么
var a = 1
var c = { name: 'jirengu', age: 2 }

 function f1(n){
  ++n
}
function f2(obj){
  ++obj.age
}

 f1(a)           //在函數(shù)內(nèi)部進行了一步看不見的var n=a,將a的值復制給了n劲装,n遞增與a沒有關系胧沫,a不變
f2(c)           //在函數(shù)內(nèi)部進行了一步看不見的var obj=c,將c的地址指針復制給了obj,obj.age的改變會影響到c.age
f1(c.age)       //將c.age的值復制給了n琳袄,n的遞增和c.age沒有關系
console.log(a)  //1
console.log(c)  //3
  1. 過濾如下數(shù)組,只保留正數(shù)纺酸,直接在原數(shù)組上操作
var arr = [3,1,0,-1,-3,2,-5]
function filter(arr){
         for( i=0 ; i<arr.length ; i++){
                   if(arr[i]<=0){
                         arr.splice(i,1)
                         i-- ;                     
                   }                   
          }
}
filter(arr)
console.log(arr)  //[
  1. 過濾如下數(shù)組窖逗,只保留正數(shù),原數(shù)組不變餐蔬,生成新數(shù)組
var arr = [3,1,0,-1,-3,2,-5]
function filter(arr){
     var newArr = []
     for( i=0 ; i<arr.length ; i++){
       if(arr[i]>0){newArr.push(arr[i])}
     }
     return newArr
}
var arr2 = filter(arr)
console.log(arr2) // [3,1,2]
console.log(arr)  // [3,1,0,-1,-3,2,-5]
  1. 寫一個深拷貝函數(shù)碎紊,用兩種方式實現(xiàn)
 var obj = {
    name:'jirengu',
    age: 18 ,
    child : {
        name : 'hahaha',
        age : 1
    }
}

 function deepCopy(oldObj){
     var newObj = {}
     for(var key in oldObj){
       if(typeof oldObj[key] === 'number'||
          typeof oldObj[key] === 'string'||
          typeof oldObj[key] === 'boolean'||
          typeof oldObj[key] === undefined||
          typeof oldObj[key] === null){
          newObj[key] = oldObj[key]
       }else{
       newObj[key] = deepCopy(oldObj[key])
      }
    }
    return newObj
}

 var obj2 = deepCopy(obj)
console.log(obj2)
obj.name = 'jscode.me'
console.log(obj)
console.log(obj2)
var obj = {
    name:'jirengu',
    age: 18 ,
    child : {
        name : 'hahaha',
        age : 1
    }
}

 function deepCopy(oldObj){
    var newObj = JSON.parse(JSON.stringify(obj))
    return newObj
  
 }

 var obj2 = deepCopy(obj)
console.log(obj2)
obj.name = 'jscode.me'
console.log(obj)
console.log(obj2)
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市樊诺,隨后出現(xiàn)的幾起案子仗考,更是在濱河造成了極大的恐慌,老刑警劉巖词爬,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秃嗜,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門娄昆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來敛纲,“玉大人,你說我怎么就攤上這事绩脆。” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵恕洲,是天一觀的道長。 經(jīng)常有香客問我梅割,道長霜第,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任户辞,我火速辦了婚禮庶诡,結果婚禮上,老公的妹妹穿的比我還像新娘咆课。我一直安慰自己末誓,他們只是感情好,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布书蚪。 她就那樣靜靜地躺著喇澡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪殊校。 梳的紋絲不亂的頭發(fā)上晴玖,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機與錄音,去河邊找鬼呕屎。 笑死让簿,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的秀睛。 我是一名探鬼主播尔当,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蹂安!你這毒婦竟也來了椭迎?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤田盈,失蹤者是張志新(化名)和其女友劉穎畜号,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體允瞧,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡简软,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了述暂。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片替饿。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖贸典,靈堂內(nèi)的尸體忽然破棺而出视卢,到底是詐尸還是另有隱情,我是刑警寧澤廊驼,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布据过,位于F島的核電站,受9級特大地震影響妒挎,放射性物質(zhì)發(fā)生泄漏绳锅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一酝掩、第九天 我趴在偏房一處隱蔽的房頂上張望鳞芙。 院中可真熱鬧,春花似錦期虾、人聲如沸原朝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽喳坠。三九已至,卻和暖如春茂蚓,著一層夾襖步出監(jiān)牢的瞬間壕鹉,已是汗流浹背剃幌。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留晾浴,地道東北人负乡。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像脊凰,于是被迫代替她去往敵國和親抖棘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 引用類型:Array,Function,Object,Regex.指的是那些保存在堆內(nèi)存中的對象笙各,變量中保存的實際...
    李永州的FE閱讀 281評論 0 0
  • 1.引用類型有哪些钉答?非引用類型有哪些 基本類型:Undefined础芍、Null杈抢、Boolean、Number和Str...
    饑人谷_有點熱閱讀 199評論 0 1
  • 1.引用類型有哪些仑性?非引用類型有哪些2.如下代碼輸出什么惶楼?為什么? var obj1 = {a:1, b:2}; ...
    Rising_suns閱讀 251評論 0 0
  • 1.引用類型有哪些?非引用類型有哪些 非引用類型值诊杆,即基本類型值(數(shù)值歼捐,布爾值,undefined晨汹,null):指...
    LINPENGISTHEONE閱讀 208評論 0 0
  • 1.引用類型有哪些豹储?非引用類型有哪些 引用類型有:函數(shù),對象淘这,正則剥扣,數(shù)組 非引用類型有:數(shù)值,字符串铝穷,布爾值钠怯,un...
    annynick閱讀 351評論 0 0