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

資訊專(zhuān)欄INFORMATION COLUMN

【js】基本類(lèi)型和引用類(lèi)型

Dogee / 2391人閱讀

摘要:基本類(lèi)型基本類(lèi)型的比較就是值的比較訪問(wèn)是訪問(wèn)值本身不能定義方法和屬性保存在棧內(nèi)存中引用類(lèi)型除了基本類(lèi)型外,就是引用類(lèi)型了。

基本類(lèi)型

1、number
2、string
3、boolean
4、symbol
5、undefined
6、null
基本類(lèi)型的比較就是值的比較;訪問(wèn)是訪問(wèn)值本身;不能定義方法和屬性;保存在棧內(nèi)存中

引用類(lèi)型

JavaScript除了基本類(lèi)型外,就是引用類(lèi)型了。如Array、Function、Object、Date等等。
引用類(lèi)型可以定義屬性和方法;同時(shí)保存在棧內(nèi)存和堆內(nèi)存中;引用類(lèi)型的比較是內(nèi)存地址的比較。

為什么說(shuō)引用類(lèi)型同時(shí)保存在棧內(nèi)存和堆內(nèi)存中

let person = {name:"louis"}
//person保存在棧內(nèi)存中,person就是這個(gè)引用對(duì)象的指針,通過(guò)這枚指針尋找到堆內(nèi)存的地址 
//{name:"louis"} 保存在堆內(nèi)存中

引用類(lèi)型是如何比較的

let address = {details:"a"}
let one = address
let tow = address
one === tow //true
// 雖然one、tow是兩枚不同的指針,但它們都同時(shí)指向了堆內(nèi)存里的address的內(nèi)容,所以它們是相等的

再來(lái)一個(gè)例子

let person = {name:"louis}
let man = {name:"louis"}
person === man //false
// person和man的內(nèi)容明明相同,為什么又不相等是因?yàn)樗齻兊膬?nèi)容雖然一樣,但是是在堆內(nèi)存里開(kāi)辟了兩個(gè)地方,所以它們指向的也是兩個(gè)不同的地方。可見(jiàn),引用類(lèi)型的比較是內(nèi)存地址的比較
函數(shù)參數(shù)是引用類(lèi)型(對(duì)象)的時(shí)候會(huì)發(fā)生什么

還是一個(gè)例子

function test(person) {
  person.age = 26
  person = {
    name: "aaa",
    age: 30
  }

  return person
}
const p1 = {
  name: "bbb",
  age: 25
}
const p2 = test(p1)
p1 // {age:26,name:"bbb"}
p2 // {age:30,name:"aaa"}

函數(shù)傳遞參數(shù)時(shí),實(shí)際上是傳遞指針的副本。
test(p1)實(shí)際上傳遞的就是p1的副本,這時(shí)指針仍然指向{name: "bbb",age: 25}
person.age = 26 這時(shí)修改的還是原來(lái)內(nèi)存位置的內(nèi)容,所以這時(shí)p1的age變成了26
當(dāng)person = {} .. 相當(dāng)于重新開(kāi)辟了一塊堆內(nèi)存,賦值{name:"aaa",age:30},最后返回這個(gè)對(duì)象,而這個(gè)對(duì)象的指針就是p2

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

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

相關(guān)文章

  • JS中,基本數(shù)據(jù)類(lèi)型、引用類(lèi)型基本包裝類(lèi)型

    摘要:例子中,屬于基本類(lèi)型對(duì)象。基本數(shù)據(jù)類(lèi)型和引用類(lèi)型作方法入?yún)r(shí)的差異通常,在函數(shù)調(diào)用時(shí),如果入?yún)榛緮?shù)據(jù)類(lèi)型時(shí),函數(shù)的參數(shù)將以值傳遞的方式傳遞。 前言:再次翻閱JS高程(第3版)過(guò)程中,看到了基本包裝類(lèi)型,趁熱留下此文,對(duì)JS的數(shù)據(jù)類(lèi)型做個(gè)較為深入的小結(jié)(2018-10-19)。 雖然JS與其他強(qiáng)類(lèi)型語(yǔ)言不一樣,聲明中無(wú)需預(yù)設(shè)數(shù)據(jù)類(lèi)型,但是JS也是有數(shù)據(jù)類(lèi)型區(qū)分的。 基本數(shù)據(jù)類(lèi)型(...

    Tychio 評(píng)論0 收藏0
  • 你還認(rèn)為JS中萬(wàn)物皆對(duì)象?

    摘要:這也解答了我曾經(jīng)的一個(gè)疑問(wèn)同樣的道理,在調(diào)用屬性的瞬間,也是使用先來(lái)實(shí)例化一個(gè)對(duì)象,所以那一瞬間他們的構(gòu)造函數(shù)以及原型對(duì)象是相同的,但也僅僅是那一瞬間。 經(jīng)常在國(guó)內(nèi)的各大網(wǎng)站博客上看到一句話,叫做JS中萬(wàn)物皆對(duì)象,那是否真是如此? 那么,我們先來(lái)捋一捋JS中的數(shù)據(jù)類(lèi)型,JS中的數(shù)據(jù)類(lèi)型有下面幾種 Undefined Null Boolean Number String Symbol ...

    levinit 評(píng)論0 收藏0
  • js基本數(shù)據(jù)類(lèi)型引用數(shù)據(jù)類(lèi)型

    摘要:熟悉的同學(xué)都知道,它的數(shù)據(jù)類(lèi)型一般分為基本數(shù)據(jù)類(lèi)型和引用數(shù)據(jù)類(lèi)型復(fù)雜數(shù)據(jù)類(lèi)型?;緮?shù)據(jù)類(lèi)型基本數(shù)據(jù)類(lèi)型有種新增。動(dòng)態(tài)的屬性基本數(shù)據(jù)類(lèi)型的值是沒(méi)有辦法添加屬性和方法的。類(lèi)型檢測(cè)根據(jù)它的原型鏈來(lái)識(shí)別引用類(lèi)型。 熟悉js的同學(xué)都知道,它的數(shù)據(jù)類(lèi)型一般分為基本數(shù)據(jù)類(lèi)型和引用數(shù)據(jù)類(lèi)型(復(fù)雜數(shù)據(jù)類(lèi)型)。那么他們之間到底有什么不同?從下面這個(gè)例子入手: var a = 1; ...

    kgbook 評(píng)論0 收藏0
  • [ JS 進(jìn)階 ] 基本類(lèi)型 引用類(lèi)型 簡(jiǎn)單賦值 對(duì)象引用

    摘要:也就是說(shuō)基本類(lèi)型在賦值操作后,兩個(gè)變量是相互不受影響的。前面講引用類(lèi)型的時(shí)候提到,保存在變量中的是對(duì)象在堆內(nèi)存中的地址,所以,與簡(jiǎn)單賦值不同,這個(gè)值的副本實(shí)際上是一個(gè)指針,而這個(gè)指針指向存儲(chǔ)在堆內(nèi)存的一個(gè)對(duì)象。 ECMAScirpt 變量有兩種不同的數(shù)據(jù)類(lèi)型:基本類(lèi)型,引用類(lèi)型。也有其他的叫法,比如原始類(lèi)型和對(duì)象類(lèi)型,擁有方法的類(lèi)型和不能擁有方法的類(lèi)型,還可以分為可變類(lèi)型和不可變類(lèi)型,...

    余學(xué)文 評(píng)論0 收藏0
  • JS從入門(mén)到放棄-基本類(lèi)型引用類(lèi)型

    摘要:從入門(mén)到放棄基本類(lèi)型和引用類(lèi)型有七種數(shù)據(jù)類(lèi)型而的變量根據(jù)指向數(shù)據(jù)類(lèi)型的不同也分為兩種類(lèi)型一種基本類(lèi)型一種引用類(lèi)型基本類(lèi)型基本類(lèi)型包括這五種但凡變量指向這五種數(shù)據(jù)類(lèi)型的都稱(chēng)之為基本類(lèi)型假設(shè)有以上變量那么他們?cè)趦?nèi)存中棧區(qū)的存儲(chǔ)結(jié)構(gòu)大概是這樣子 JS從入門(mén)到放棄-基本類(lèi)型和引用類(lèi)型 JS有number,string,null,undefined,boolean,array,object七種數(shù)...

    walterrwu 評(píng)論0 收藏0
  • js基本類(lèi)型、引用類(lèi)型、包裝類(lèi)型

    摘要:每當(dāng)讀取這個(gè)基本類(lèi)型時(shí),后臺(tái)會(huì)創(chuàng)建一個(gè)對(duì)應(yīng)的基本包裝類(lèi)型的對(duì)象。類(lèi)型判斷主要是用來(lái)判斷基本數(shù)據(jù)類(lèi)型返回類(lèi)型新增所以只能用來(lái)判斷基本數(shù)據(jù)類(lèi)型。引用類(lèi)型基本包裝類(lèi)型都會(huì)返回。 最近重溫JS高程設(shè)計(jì)以及與朋友的討論。決定趁熱打鐵記錄JS的各種類(lèi)型,并做下深入總結(jié)。 js的幾種類(lèi)型 基本類(lèi)型:Boolean、String、Number、Null、Undefined 引用類(lèi)型: 2.1 O...

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

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

0條評(píng)論

Dogee

|高級(jí)講師

TA的文章

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