成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

深度剖析js數(shù)組

lordharrd / 819人閱讀

摘要:且原始數(shù)組不會(huì)被修改。語法從上面的例子可以看到其實(shí)是重新開了一個(gè)內(nèi)存塊給新數(shù)組了,所以我們可以用來解決上面的問題在內(nèi)存中開個(gè)新內(nèi)存塊給,這樣就算你改了的內(nèi)容,也不會(huì)變。

1、數(shù)組是引用類型

大家應(yīng)該都知道數(shù)組和對(duì)象都是引用類型,如果一個(gè)數(shù)組賦值給另外一個(gè)數(shù)組只是將該數(shù)組的引用地址賦給另一個(gè)數(shù)組!比如:

    let a = [{
        id:1.
        name:"zhangwei",
        age:18
    }];
    
    let b = a;//這里將a的引用地址的指針指向了b,所以如果你想獲取b的內(nèi)容,其實(shí)就是獲取a的內(nèi)容,相當(dāng)于給a開了一個(gè)副本

上面的代碼有一定的副作用:就是如果你改變了a的值那么b的值就會(huì)跟著變化,這也就是引用地址造成的,因?yàn)閍和b指針指向的是同一個(gè)內(nèi)存區(qū)域,如:

    a.name = "lilei"
    console.log(b.name)//這時(shí)候b.name 就是 "lilei"
2、斷開數(shù)組間的引用地址

像上面的 "副作用" 我們?nèi)绾谓鉀Q呢?因?yàn)槲也幌敫淖兞薬的同時(shí)讓b也變化!其實(shí)方法也有好多種,網(wǎng)上百度一下應(yīng)該也能查到,這里我使用的是我目前使用的方法 array的slice()方法,按照MDN Array slice 上面的說明:

   slice() 方法返回一個(gè)從開始到結(jié)束(不包括結(jié)束)選擇的數(shù)組的一部分淺拷貝到一個(gè)新數(shù)組對(duì)象。且原始數(shù)組不會(huì)被修改。

語法Edit
arr.slice();
// [0, end]

arr.slice(begin);
// [begin, end]

arr.slice(begin, end);
// [begin, end)

var animals = ["ant", "bison", "camel", "duck", "elephant"];

console.log(animals.slice(2));
// expected output: Array ["camel", "duck", "elephant"]

console.log(animals.slice(2, 4));
// expected output: Array ["camel", "duck"]

console.log(animals.slice(1, 5));
// expected output: Array ["bison", "camel", "duck", "elephant"]

從上面的例子可以看到slice其實(shí)是重新開了一個(gè)內(nèi)存塊給新數(shù)組了,所以我們可以用來解決上面的問題:

let a = [{
        id:1.
        name:"zhangwei",
        age:18
    }];
let b = a.slice();//在內(nèi)存中開個(gè)新內(nèi)存塊給b,這樣就算你改了a的內(nèi)容,b也不會(huì)變。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/108058.html

相關(guān)文章

  • js對(duì)象詳解(JavaScript對(duì)象深度剖析,深度理解js對(duì)象)

    摘要:對(duì)象詳解對(duì)象深度剖析,深度理解對(duì)象這算是醞釀很久的一篇文章了。用空構(gòu)造函數(shù)設(shè)置類名每個(gè)對(duì)象都共享相同屬性每個(gè)對(duì)象共享一個(gè)方法版本,省內(nèi)存。 js對(duì)象詳解(JavaScript對(duì)象深度剖析,深度理解js對(duì)象) 這算是醞釀很久的一篇文章了。 JavaScript作為一個(gè)基于對(duì)象(沒有類的概念)的語言,從入門到精通到放棄一直會(huì)被對(duì)象這個(gè)問題圍繞。 平時(shí)發(fā)的文章基本都是開發(fā)中遇到的問題和對(duì)...

    CatalpaFlat 評(píng)論0 收藏0
  • 深度剖析 redux applyMiddleware 中 compose 構(gòu)建異步數(shù)據(jù)流的思路

    摘要:前言本文作者站在自己的角度深入淺出算了別這么裝逼分析在設(shè)計(jì)過程中通過構(gòu)建異步數(shù)據(jù)流的思路。看上去那是相當(dāng)?shù)耐昝?,根?jù)咱們寫代碼的思路咱們來比對(duì)一下原版吧。時(shí)直接返回傳入函數(shù)函數(shù)。 前言 本文作者站在自己的角度深入淺出...算了別這么裝逼分析 redux applyMiddleware 在設(shè)計(jì)過程中通過 compose 構(gòu)建異步數(shù)據(jù)流的思路。自己假設(shè)的一些場(chǎng)景幫助理解,希望大家在有異步數(shù)...

    tinylcy 評(píng)論0 收藏0
  • 針對(duì)vue wtach一次詳細(xì)的剖析

    摘要:提問深度與非深度的區(qū)別對(duì)象與數(shù)組與的區(qū)別的一個(gè)特點(diǎn)是,最初綁定的時(shí)候是不會(huì)執(zhí)行的,要等到改變時(shí)才執(zhí)行監(jiān)聽計(jì)算。為一個(gè)對(duì)象,鍵是需要觀察的表達(dá)式,值是對(duì)應(yīng)回調(diào)函數(shù)。值也可以是方法名,或者包含選項(xiàng)的對(duì)象適用場(chǎng)景一個(gè)數(shù)據(jù)影響多個(gè)數(shù)據(jù)。 提問 1.深度watch與非深度watch的區(qū)別;2.watch對(duì)象與數(shù)組;3.watch與computed的區(qū)別; immediate FullNa...

    crossoverJie 評(píng)論0 收藏0
  • 深度剖析憑什么python中整型不會(huì)溢出

    摘要:前言本次分析基于解釋器,版本在時(shí)代,整型有類型和長(zhǎng)整型,長(zhǎng)整型不存在溢出問題,即可以存放任意大小的整數(shù)。在后,統(tǒng)一使用了長(zhǎng)整型。 前言 本次分析基于 CPython 解釋器,python3.x版本 在python2時(shí)代,整型有 int 類型和 long 長(zhǎng)整型,長(zhǎng)整型不存在溢出問題,即可以存放任意大小的整數(shù)。在python3后,統(tǒng)一使用了長(zhǎng)整型。這也是吸引科研人員的一部分了,適合大數(shù)據(jù)...

    MSchumi 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<