欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Javascript 關于基本類型和引用類型的個人理解

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

 1.基礎類型

A. 基礎類型有5種,Number,String,Boolean,Null,Undefined

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

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

比如:

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ù)的值為 “堆值”,設堆值為value1 ,堆值對象內(nèi)部的的key-value形式的value值為值中值 ,設此堆值為 “value2” ,在當前例子中,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 基礎類型的比較是值的比較

比如:

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

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

如下圖:

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

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

相關文章

  • javascript實現(xiàn)5秒倒計時并跳轉功能

    javascript實現(xiàn)5秒倒計時并跳轉功能

    這篇文章主要為大家詳細介紹了javascript實現(xiàn)5秒倒計時并跳轉功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • javascript實現(xiàn)checkbox全選的代碼

    javascript實現(xiàn)checkbox全選的代碼

    本文給大家分享的是js實現(xiàn)checkbox的全選的代碼,在網(wǎng)頁制作中很常用的js代碼,供大家學習參考。
    2015-04-04
  • JavaScript閉包原理與用法實例分析

    JavaScript閉包原理與用法實例分析

    這篇文章主要介紹了JavaScript閉包原理與用法,結合實例形式分析了javascript閉包的概念、功能、常見問題及相關操作技巧,需要的朋友可以參考下
    2018-08-08
  • 深入了解JavaScript 的 WebAssembly

    深入了解JavaScript 的 WebAssembly

    這篇文章主要介紹了深入了解JavaScript 的 WebAssembly,它是由 Google , Microsoft , Mozilla , Apple 等幾家大公司合作發(fā)起的一個關于 面向Web的通用二進制和文本格式 的項目。 ,需要的朋友可以參考下
    2019-06-06
  • 微信小程序 select 下拉框組件功能

    微信小程序 select 下拉框組件功能

    這篇文章主要介紹了微信小程序 select 下拉框組件功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • 基于openlayers4實現(xiàn)點的擴散效果

    基于openlayers4實現(xiàn)點的擴散效果

    這篇文章主要為大家詳細介紹了基于openlayers4實現(xiàn)點的擴散效果 ,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • js 表格拖拽效果實例代碼 (IE only)

    js 表格拖拽效果實例代碼 (IE only)

    拖拽交換Table的列(I.E. ONLY)
    2010-02-02
  • 微信小程序switch組件使用詳解

    微信小程序switch組件使用詳解

    這篇文章主要為大家詳細介紹了微信小程序switch組件的實現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 詳解js中常規(guī)日期格式處理、月歷渲染和倒計時函數(shù)

    詳解js中常規(guī)日期格式處理、月歷渲染和倒計時函數(shù)

    大家在日常開發(fā)的時候經(jīng)常要用到日期格式的處理,下面這篇文章主要給大家介紹了js中常規(guī)日期格式處理、月歷渲染及倒計時函數(shù),有需要的朋友可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • JavaScript獲取radio選中值的幾種常用方法小結

    JavaScript獲取radio選中值的幾種常用方法小結

    這篇文章主要介紹了JavaScript獲取radio選中值的幾種常用方法,結合實例形式總結分析了javascript獲取radio選中值的常見實現(xiàn)方法與操作注意事項,需要的朋友可以參考下
    2023-06-06

最新評論