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

Javascript中的基本類型和引用類型概述說明

 更新時間:2022年11月30日 09:42:49   作者:@樂知者@  
這篇文章主要介紹了Javascript中的基本類型和引用類型的相關資料,包括基本類型和引用類型的概念及區(qū)別,數(shù)據(jù)類型檢測給大家詳細介紹了js基本類型和引用類型,非常不錯,需要的朋友可以參考下

簡單概述

js變量可以劃分為兩種不同的數(shù)據(jù)類型:

  • 基本類型:undefined、null、Boolean、Number、String、Symbol(ES6)
  • 引用類型:除基本類型以外,也可以理解為對象,如:Object、Array、RegExp、Date、Function等

類型的區(qū)別在于:

基本類型引用類型
可變性不可變可變
存儲區(qū)棧區(qū)棧區(qū)和堆區(qū)
訪問按值訪問按引用訪問
兩者比較值的比較引用的比較

詳細說明

值的可變性

基本類型(以string類型為例):

let person = '小明';
person.age = 18;
console.log(person.age);  // undefined

引用類型值(原始值)可添加屬性和方法:

let person = { name: '小落子' };
person.age = 18;
person.addAge = function() {
    person.age2 = person.age + 1;
}
person.addAge();
console.log(person.age, person.age2);  // 18 19

這樣就說明了,基本類型的值是不可變的,而引用類型的值是可變的

存儲

基本類型存儲結(jié)構(gòu):

棧區(qū)棧區(qū)
name小紅
age18

基本類型的變量存放在棧區(qū)(棧區(qū)指內(nèi)存里的棧內(nèi)存,stack)

棧區(qū)保存了變量的標識和變量的值

引用類型存儲結(jié)構(gòu):

引用類型的存儲需要內(nèi)存的棧區(qū)和堆區(qū)共同完成(堆區(qū)指內(nèi)存里的堆內(nèi)存,heap)

棧區(qū)保存了變量的標識符和指向堆內(nèi)存中該對象的指針(該對象在堆內(nèi)存的地址),堆區(qū)保存了實際的對象

訪問/比較

// 基本類型,以string為例
let a = '[]', b = '[]';
console.log(a === b);  // true
// 引用類型
let c = [], d = [];
console.log(c === d);  // false

基本類型的訪問是按值訪問的;引用類型是按**引用(地址)**訪問的

基本類型比較的是值,所以相同,就為 true;引用類型比較是兩個對象堆內(nèi)存地址是否相同,雖然變量c和變量d都是一個空數(shù)組,但是它們的堆內(nèi)存地址不是一樣的,地址指向的不是同一個數(shù)組對象,所以不相等。

經(jīng)常遇到的問題

關于基本類型和引用類型,不管是面試中,還是平常使用中,經(jīng)常遇到的問題便是克?。◤椭疲@里又引出另一個概念(深克隆和淺克隆,對于基本類型是沒什么影響的)

  • 淺克?。簭椭埔妙愋蜁r,不僅復制,而且還把內(nèi)存地址也復制了一遍;修改其中一個,另一個會跟著變化
  • 深克?。簭椭?,內(nèi)存地址不同;修改其中一個,另一個不會相應的改變

到此這篇關于Javascript中的基本類型和引用類型概述說明的文章就介紹到這了,更多相關JS基本類型與引用類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 微信小程序表單彈窗實例

    微信小程序表單彈窗實例

    這篇文章主要為大家詳細介紹了微信小程序表單彈窗實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • 微信小程序?qū)崿F(xiàn)左右列表聯(lián)動

    微信小程序?qū)崿F(xiàn)左右列表聯(lián)動

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)左右列表聯(lián)動,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • JavaScript常見事件對象與操作實例總結(jié)

    JavaScript常見事件對象與操作實例總結(jié)

    這篇文章主要介紹了JavaScript常見事件對象與操作,結(jié)合實例形式總結(jié)分析了javascript針對DOM、IE及跨瀏覽器事件對象的相關操作技巧,需要的朋友可以參考下
    2019-01-01
  • JavaScript中的16進制字符(改進)

    JavaScript中的16進制字符(改進)

    后來經(jīng)過自己的測試,發(fā)現(xiàn)將字符轉(zhuǎn)換為十六進制的方法不完善。
    2011-11-11
  • 理解Javascript的動態(tài)語言特性

    理解Javascript的動態(tài)語言特性

    這篇文章主要介紹了理解Javascript的動態(tài)語言特性,需要的朋友可以參考下
    2015-06-06
  • 關于JavaScript的面向?qū)ο蠛屠^承有利新手學習

    關于JavaScript的面向?qū)ο蠛屠^承有利新手學習

    這是一篇關于JavaScript的面向?qū)ο蠛屠^承的文章,對想學習JavaScript中面向?qū)ο蟮耐瑢W來說是很有幫助,雖然一些Javascript用戶可能永遠也不需要知道原型或面向?qū)ο笳Z言的性質(zhì),但是那些來自傳統(tǒng)面向?qū)ο蟮恼Z言的開發(fā)者使用的時候會發(fā)現(xiàn)JavaScript的繼承模型非常的奇怪
    2013-01-01
  • JavaScript HTML DOM 元素 (節(jié)點)新增,編輯,刪除操作實例分析

    JavaScript HTML DOM 元素 (節(jié)點)新增,編輯,刪除操作實例分析

    這篇文章主要介紹了JavaScript HTML DOM 元素 (節(jié)點)新增,編輯,刪除操作,結(jié)合實例形式分析了JavaScript針對HTML DOM 元素 (節(jié)點)的新增,編輯,刪除相關操作技巧與使用注意事項,需要的朋友可以參考下
    2020-03-03
  • JS是按值傳遞還是按引用傳遞

    JS是按值傳遞還是按引用傳遞

    在分析這個問題之前,我們需了解什么是按值傳遞(call by value),什么是按引用傳遞(call by reference)。在計算機科學里,這個部分叫求值策略(Evaluation Strategy)。它決定變量之間、函數(shù)調(diào)用時實參和形參之間值是如何傳遞的。
    2015-01-01
  • javascript 手機號碼驗證是否正確

    javascript 手機號碼驗證是否正確

    javascript 手機號碼驗證實現(xiàn)代碼。
    2009-06-06
  • 微信小程序?qū)崿F(xiàn)人臉檢測功能

    微信小程序?qū)崿F(xiàn)人臉檢測功能

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)人臉檢測功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05

最新評論

延长县| 巍山| 河东区| 西盟| 阜新市| 资阳市| 乌兰察布市| 临猗县| 舞钢市| 深水埗区| 平陆县| 泰安市| 秦安县| 芦溪县| 安徽省| 富锦市| 井陉县| 黔东| 土默特左旗| 武乡县| 清水县| 钟山县| 通渭县| 北碚区| 铜陵市| 阜新| 崇礼县| 罗甸县| 宜春市| 威海市| 北票市| 遵义市| 永嘉县| 应用必备| 凭祥市| 重庆市| 鄂尔多斯市| 顺义区| 崇阳县| 余江县| 马尔康县|