引用類型與對(duì)象拷貝

1.引用類型有哪些?非引用類型有哪些言询?

引用類型:對(duì)象俯萎、數(shù)組、函數(shù)运杭、正則表達(dá)式
非引用類型:數(shù)值夫啊、字符串、布爾值辆憔、null撇眯、undefined
基本類型:指的是保存在棧內(nèi)存中的簡(jiǎn)單數(shù)據(jù)段
引用類型:保存在堆內(nèi)存中的對(duì)象,變量中保存的實(shí)際上只是一個(gè)指針虱咧,這個(gè)指針執(zhí)行內(nèi)存中的另一個(gè)位置熊榛,由該位置保存對(duì)象

2.如下代碼輸出什么?為什么
  var obj1 = {a:1, b:2};
  var obj2 = {a:1, b:2};
  console.log(obj1 == obj2); //false  指向的地址不一樣
  console.log(obj1 = obj2);   //{a:1,b:2}  將obj2賦值給obj1腕巡,指向了同一個(gè)地址
  console.log(obj1 == obj2);  //true   指向的地址是同一個(gè)

輸出結(jié)果:false {a:1,b=2} true

3.如下代碼輸出什么玄坦?為什么
  var a = 1
  var b = 2
  var c = { name: '饑人谷', age: 2 }  //0xx11
  var d = [a, b, c]  //0xx22
  var aa = a  //1
  var bb = b  //2
  var cc = c  //0xx11
  var dd = d  //0xx22
  a = 11
  b = 22
  c.name = 'hello'
  d[2]['age'] = 3
  console.log(aa)   //1
  //a=1,把a(bǔ)賦值給aa绘沉,aa=1
  console.log(bb)    //2
  //b=2煎楣,把b賦值給bb,bb=2
  console.log(cc)   // {name:"hello",age: 3}
  //把c的值賦給cc车伞,cc就和c指向同樣的地址择懂;c.name='hello',c的name值發(fā)生變化,cc的name值也跟著一起變化帖世; d[2]['age'] = 3休蟹,改變的是c的age值沸枯,cc和c指向同樣的地址,所以cc的age值也發(fā)生變化
  console.log(dd)   // [1, 2, {name:"hello",age: 3}] 
  //d=[1,2,{ name: '饑人谷', age: 2 }]赂弓,把d的值賦給dd绑榴,dd就和d指向同樣的地址;c.name='hello',c的name值發(fā)生變化盈魁,d和dd中的name也跟著發(fā)生變化翔怎,然后d[2]['age'] = 3,d和dd中的age也隨著變成3

輸出結(jié)果:1 2 {name:"hello",age: 3} [1, 2, {name:"hello",age: 3}]

4.如下代碼輸出什么杨耙?為什么
  var a = 1
  var c = { name: 'jirengu', age: 2 }
  function f1(n){  //把a(bǔ)的值復(fù)制給n赤套,n=a;  把c.age的值賦給n,n=c.age
    ++n   //2 4
  }
  function f2(obj){  //把c的值賦給obj珊膜,obj=c;
    ++obj.age  //{ name: 'jirengu', age: 3 }
  }
  f1(a)   
  f2(c) 
  f1(c.age)  //把c.age的值賦給n容握,n的值發(fā)生了變化,對(duì)c.age沒(méi)有影響
  console.log(a)   //1
  //a的值賦給n车柠,n發(fā)生變化剔氏,a沒(méi)有變化,a的值為1
  console.log(c)   //{ name: 'jirengu', age: 3 }
  ////把c的值賦給obj竹祷,obj和c指向同樣的地址谈跛,obj.age發(fā)生變化,c.age也跟著變化

輸出結(jié)果: 1 { name: 'jirengu', age: 3 }

5.過(guò)濾如下數(shù)組塑陵,只保留正數(shù)感憾,直接在原數(shù)組上操作
  var arr = [3,1,0,-1,-3,2,-5]
  function filter(arr){
    for(var i=0; i<arr.length; i++){
       if(arr[i]<=0){
         arr.splice(i,1);
         i--;
      }
    }
  }
  filter(arr)
  console.log(arr) // [3,1,2]
6.過(guò)濾如下數(shù)組,只保留正數(shù)令花,原數(shù)組不變阻桅,生成新數(shù)組
  var arr = [3,1,0,-1,-3,2,-5]
  function filter(arr){
    var arr2=[];
     for(var i = 0; i < arr.length; i++){
        arr2[i] = arr[i];
   }
   for(var i = 0; i < arr2.length; i++){
       if(arr2[i] <= 0){
         arr2.splice(i,1);
         i--;
      }    
    }
  return arr2;
  }
  var arr2 = filter(arr)
  console.log(arr2) // [3,1,2]
  console.log(arr)  // [3,1,0,-1,-2,2,-5]
7.寫(xiě)一個(gè)深拷貝函數(shù),用兩種方式實(shí)現(xiàn)
    function deepCopy(){
      var obj2={};
      for(var key in obj){
        if(obj.hasOwnProperty[key]){
           if(typeof obj[key] === "number" || typeof obj[key] === "boolean"
           || typeof obj[key] === "string" || obj[key] === null  || obj[key] === undefined){
            obj2[key] =obj[key];
          }else{
            obj2[key] = deepCopy(obj[key]);
          }
        }
      }
      return obj2;
    }
  function deepCopy(obj){
    var obj2={};
    obj2=JSON.parse(JSON.stringify(obj));
    return obj2;
  }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末彭则,一起剝皮案震驚了整個(gè)濱河市鳍刷,隨后出現(xiàn)的幾起案子占遥,更是在濱河造成了極大的恐慌俯抖,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,378評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瓦胎,死亡現(xiàn)場(chǎng)離奇詭異芬萍,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)搔啊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門柬祠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人负芋,你說(shuō)我怎么就攤上這事漫蛔。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,983評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵莽龟,是天一觀的道長(zhǎng)蠕嫁。 經(jīng)常有香客問(wèn)我,道長(zhǎng)毯盈,這世上最難降的妖魔是什么剃毒? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,938評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮搂赋,結(jié)果婚禮上赘阀,老公的妹妹穿的比我還像新娘。我一直安慰自己脑奠,他們只是感情好基公,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,955評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著宋欺,像睡著了一般酌媒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上迄靠,一...
    開(kāi)封第一講書(shū)人閱讀 52,549評(píng)論 1 312
  • 那天秒咨,我揣著相機(jī)與錄音,去河邊找鬼掌挚。 笑死雨席,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的吠式。 我是一名探鬼主播陡厘,決...
    沈念sama閱讀 41,063評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼特占!你這毒婦竟也來(lái)了糙置?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,991評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤是目,失蹤者是張志新(化名)和其女友劉穎谤饭,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體懊纳,經(jīng)...
    沈念sama閱讀 46,522評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡揉抵,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,604評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了嗤疯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片冤今。...
    茶點(diǎn)故事閱讀 40,742評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖茂缚,靈堂內(nèi)的尸體忽然破棺而出戏罢,到底是詐尸還是另有隱情屋谭,我是刑警寧澤,帶...
    沈念sama閱讀 36,413評(píng)論 5 351
  • 正文 年R本政府宣布龟糕,位于F島的核電站戴而,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏翩蘸。R本人自食惡果不足惜所意,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,094評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望催首。 院中可真熱鬧扶踊,春花似錦、人聲如沸郎任。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,572評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春刀诬,著一層夾襖步出監(jiān)牢的瞬間玻佩,已是汗流浹背钻蹬。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,671評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工酷师, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人惜浅。 一個(gè)月前我還...
    沈念sama閱讀 49,159評(píng)論 3 378
  • 正文 我出身青樓瘫辩,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親坛悉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子伐厌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,747評(píng)論 2 361

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

  • 基本類型和引用類型# ECMAScript包含兩種不同的數(shù)據(jù)類型:基本類型值和引用類型值; 基本類型值指的是保存在...
    草鞋弟閱讀 500評(píng)論 0 0
  • 1.引用類型有哪些?非引用類型有哪些 引用類型: 對(duì)象 object 數(shù)組 函數(shù) 正則非引用類型...
    怎么昵稱閱讀 247評(píng)論 0 0
  • 引用類型有哪些裸影?非引用類型有哪些挣轨? JS中的數(shù)據(jù)類型分為基本類型和引用類型⌒桑基本類型:數(shù)值(number)卷扮、字符串...
    LeeoZz閱讀 269評(píng)論 0 0
  • 也許蛻變的過(guò)程帶給人的感受就是百感交集的。在改變途中界轩,停下來(lái)反思并為下一步做準(zhǔn)備画饥,這就是我目前的狀態(tài)。 在聽(tīng)了第三...
    寒江雪霏閱讀 633評(píng)論 0 0
  • 1. distutils distutils是 python 標(biāo)準(zhǔn)庫(kù)的一部分浊猾,2000年發(fā)布。使用它能夠進(jìn)行 py...
    楊圣明閱讀 341評(píng)論 0 1