日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

惊呼!JavaScript基本数据类型和引用数据类型详解

發(fā)布時(shí)間:2023/12/9 javascript 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 惊呼!JavaScript基本数据类型和引用数据类型详解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

我是歌謠 知其然知其所以然 人人都有一個(gè)大廠夢(mèng) 希望通過(guò)自己的一個(gè)總結(jié)分享可以給予大家?guī)?lái)幫助和提升。

本期知識(shí)點(diǎn)

JavaScript中基本數(shù)據(jù)類型和引用數(shù)據(jù)類型

目標(biāo)

  • 理解基本數(shù)據(jù)類型和引用數(shù)據(jù)類型的定義
  • 理解堆和棧
  • 數(shù)據(jù)類型分為哪些
  • 定義

    ECMAScript包括兩個(gè)不同類型的值:基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。
     基本數(shù)據(jù)類型指的是簡(jiǎn)單的數(shù)據(jù)段,引用數(shù)據(jù)類型指的是有多個(gè)值構(gòu)成的對(duì)象。
     當(dāng)我們把變量賦值給一個(gè)變量時(shí),解析器首先要確認(rèn)的就是這個(gè)值是基本類型值還是引用類型值。

    常見(jiàn)的數(shù)據(jù)類型

    基本數(shù)據(jù)類型

    • Sting
    • Number
    • Boolean
    • null
    • undefined
    • Symbol

    引用數(shù)據(jù)類型

    • Object
    • Date
    • function
    • RegExp
    • Array …

    棧內(nèi)存(stack)

    棧內(nèi)存:是一種特殊的線性表,它具有后進(jìn)先出的特性,存放基本類型。

    堆內(nèi)存(heap)

    區(qū)別

    1復(fù)制變量時(shí)的不同
    對(duì)于基本類型來(lái)說(shuō),一般會(huì)在變量對(duì)象上創(chuàng)建一個(gè)新值,然后把這個(gè)值復(fù)制到為新變量分配的類型上面
    對(duì)于引用類型來(lái)說(shuō),也會(huì)將存儲(chǔ)在變量對(duì)象的值復(fù)制一份到新變量的內(nèi)存空間中,但是這個(gè)值的副本其實(shí)是一個(gè)指針,這個(gè)指針指向我們被賦值的對(duì)象,即不管怎么樣,引用類型的賦值其實(shí)都是引用的同一個(gè)對(duì)象

    2參數(shù)傳遞的不同
    首先我們應(yīng)該明確一點(diǎn):ECMAScript中所有函數(shù)的參數(shù)都是按值來(lái)傳遞的。
    原始值:只是把變量里的值傳遞給參數(shù),之后參數(shù)和這個(gè)變量互不影響。
    引用值:對(duì)象變量它里面的值是這個(gè)對(duì)象在堆內(nèi)存中的內(nèi)存地址,因此它傳遞的值也就是這個(gè)內(nèi)存地址,這也就是為什么函數(shù)內(nèi)部對(duì)這個(gè)參數(shù)的修改會(huì)體現(xiàn)在外部的原因了,因?yàn)樗鼈兌贾赶蛲粋€(gè)對(duì)象。

    3聲明變量時(shí)不同的內(nèi)存分配:
    原始值:存儲(chǔ)在棧(stack)中的簡(jiǎn)單數(shù)據(jù)段,也就是說(shuō),它們的值直接存儲(chǔ)在變量訪問(wèn)的位置。
    引用值:存儲(chǔ)在堆(heap)中的對(duì)象,也就是說(shuō),存儲(chǔ)在變量處的值是一個(gè)指針(point),指向存儲(chǔ)對(duì)象的內(nèi)存地址。

    檢測(cè)方法

    可以通過(guò)typeof檢測(cè)基本類型和復(fù)雜類型,不過(guò)檢測(cè)出來(lái)的復(fù)雜類型都是Object,如果想要檢測(cè)復(fù)雜類型可以通過(guò) instanceof
    語(yǔ)法:object instanceof constructor

    var a1=0; // typedof a1 -> number var a2 = 'this is str'; //typedof a2 -> string var a3 =null; //typedof a3 -> null var c= [1,2,3]; // c instanceof Array ->true var b={m:20}; // b instanceof Object ->true

    總結(jié)

    面試中經(jīng)常會(huì)問(wèn)我們基本數(shù)據(jù)類型有哪些
    我是歌謠 放棄很容易 堅(jiān)持一定很酷 純屬個(gè)人總結(jié) 若有不合理之處 可選擇性關(guān)閉網(wǎng)頁(yè) 歡迎討論
    下一期預(yù)計(jì)開(kāi)始講解原型和原型鏈部分 敬請(qǐng)期待

    總結(jié)

    以上是生活随笔為你收集整理的惊呼!JavaScript基本数据类型和引用数据类型详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。