最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Javascript 關(guān)于基本類型和引用類型的個人理解

 更新時(shí)間:2019年11月01日 23:47:31   作者:烈霧風(fēng)雨城  
這篇文章主要介紹了Javascript 關(guān)于基本類型和引用類型的個人理解,需要的朋友可以參考下

 1.基礎(chǔ)類型

A. 基礎(chǔ)類型有5種,Number,String,Boolean,Null,Undefined

B. 基礎(chǔ)類型沒有堆的概念,堆只針對引用類型。

所有基礎(chǔ)類型都是以key-value形式存放在棧中,其中,基礎(chǔ)類型的值不可變,除非是重新賦值,

比如:

var a = "1234";
a[0] = "k";//對值本身修改,無效
console.log(a)//1234

a = "k";//重新賦值
console.log(a)//k

 2.引用類型

引用類型,如Array,Object,F(xiàn)unction,Date,RegExp等

所有引用類型都是以key-value形式存放在棧中,其中,引用類型的key-value存放的value是指針地址,地址指向所在的堆的某個空間 ,這個空間存放著引用類型數(shù)據(jù)的值。

注意:

引用數(shù)據(jù)的值為 “堆值”,設(shè)堆值為value1 ,堆值對象內(nèi)部的的key-value形式的value值為值中值 ,設(shè)此堆值為 “value2” ,在當(dāng)前例子中,value1是可改變的,value2是不可改變的,除非是重新賦值。

比如:

// 堆值,即value1,可改變
var a = {"name":"jack"};
a = [];//重新賦值
console.log(a)// []
 
// 堆值中值,即value2,與基本數(shù)據(jù)類型一樣不可改變
var a = {"name":"jack"};
a.name[0] = "0";
console.log(a)// {"name":"jack"}

3.傳值與傳址

如下圖所示:

3.1 A代碼塊是傳值

A代碼塊執(zhí)行,a和b都會在棧區(qū)開辟一個空間用來存放值10,并且以key-value形式存放。A代碼塊是傳值

3.2 B代碼塊是傳址

B代碼塊執(zhí)行,a1會開辟一個空間用來存放指針地址,然后a1的指針地址會賦值給b1,即b1同樣會開辟一個空間用來放指針地址,而a1,b1指針地址指向的都是堆區(qū)的"堆值",即value1。

4.比較

4.1 基礎(chǔ)類型的比較是值的比較

比如:

var a = 1;
var b = 1;
console.log(a == b);//true

4.2 引用類型的比較是引用的比較

同一個引用比較是可以相等,不同引用的比較不等。

比如:

//不同引用的比較
var p1 = {};
var p2 = {};
console.log(p1 == p2) //false
 
//不同引用的比較
var p3 = {"name":{},"age":30};
var p4 = {"name":{},"age":30};
console.log(p3.name == p4.name);//false(這個是引用比較)
console.log(p3.age == p4.age);//true(這個是值比較)
 
//同引用的比較
var p5 = {};
var p6 = p5;
console.log(p5 == p6)//true

如果引用被賦值別的類型,那么當(dāng)前引用會被切斷和值的指針地址。

如下圖:

當(dāng)a1重新賦值的時(shí)候,a1和 “ 堆值--> {} ” 的聯(lián)系被替換成新的指針地址,即“ 堆值--> [] ”

好了這篇關(guān)于js 基本類型和引用類型的文章就介紹到這,更多請繼續(xù)往下閱讀相關(guān)文章。

相關(guān)文章

  • javascript實(shí)現(xiàn)下雨效果

    javascript實(shí)現(xiàn)下雨效果

    本文主要介紹了javascript實(shí)現(xiàn)下雨效果的示例代碼。具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-03-03
  • Bootstrap入門書籍之(三)柵格系統(tǒng)

    Bootstrap入門書籍之(三)柵格系統(tǒng)

    這篇文章主要介紹了Bootstrap入門書籍之(三)柵格系統(tǒng)的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • JavaScript實(shí)現(xiàn)簡單音樂播放器

    JavaScript實(shí)現(xiàn)簡單音樂播放器

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡單音樂播放器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • js圖片查看器插件用法示例

    js圖片查看器插件用法示例

    這篇文章主要介紹了js圖片查看器插件用法,結(jié)合實(shí)例形式分析了圖片查看器插件viewer.js簡單使用技巧,需要的朋友可以參考下
    2019-06-06
  • JavaScript編寫連連看小游戲

    JavaScript編寫連連看小游戲

    這篇文章主要介紹了JavaScript編寫連連看小游戲的相關(guān)資料,需要的朋友可以參考下
    2015-07-07
  • 生產(chǎn)制造追溯系統(tǒng)之再說條碼打印

    生產(chǎn)制造追溯系統(tǒng)之再說條碼打印

    這篇文章主要介紹了生產(chǎn)制造追溯系統(tǒng)之再說條碼打印,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • JavaScript實(shí)現(xiàn)瀏覽器網(wǎng)頁自動滾動并點(diǎn)擊的示例代碼

    JavaScript實(shí)現(xiàn)瀏覽器網(wǎng)頁自動滾動并點(diǎn)擊的示例代碼

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)瀏覽器網(wǎng)頁的自動滾動并點(diǎn)擊的示例代碼,幫助大家更好的理解和學(xué)習(xí)JavaScript的使用,感興趣的朋友可以了解下
    2020-12-12
  • 百度地圖api如何使用

    百度地圖api如何使用

    如果想用百度地圖api,首先需要先獲取一個百度地圖api的密鑰,然后引入百度地圖的api,這篇文章就講下百度地圖api如何使用的相關(guān)資料,需要的朋友可以參考下
    2015-08-08
  • 小程序開發(fā)之模態(tài)框組件封裝

    小程序開發(fā)之模態(tài)框組件封裝

    這篇文章主要為大家詳細(xì)介紹了小程序開發(fā)之模態(tài)框組件封裝,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • js Canvas實(shí)現(xiàn)圓形時(shí)鐘教程

    js Canvas實(shí)現(xiàn)圓形時(shí)鐘教程

    這篇文章主要為大家詳細(xì)介紹了HTML5 Canvas實(shí)現(xiàn)圓形時(shí)鐘簡易教程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09

最新評論

小金县| 咸丰县| 富裕县| 囊谦县| 沙洋县| 曲靖市| 威宁| 衡南县| 昆明市| 葫芦岛市| 徐水县| 平果县| 景洪市| 鄂温| 云和县| 余庆县| 松滋市| 于都县| 友谊县| 中超| 黔西县| 台南市| 星子县| 哈密市| 莆田市| 通州区| 福建省| 嘉定区| 金沙县| 扎囊县| 重庆市| 绩溪县| 井陉县| 广安市| 临高县| 务川| 西吉县| 崇州市| 龙山县| 安化县| 罗山县|