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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

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

發布時間:2023/12/9 javascript 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 惊呼!JavaScript基本数据类型和引用数据类型详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

我是歌謠 知其然知其所以然 人人都有一個大廠夢 希望通過自己的一個總結分享可以給予大家帶來幫助和提升。

本期知識點

JavaScript中基本數據類型和引用數據類型

目標

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

    ECMAScript包括兩個不同類型的值:基本數據類型和引用數據類型。
     基本數據類型指的是簡單的數據段,引用數據類型指的是有多個值構成的對象。
     當我們把變量賦值給一個變量時,解析器首先要確認的就是這個值是基本類型值還是引用類型值。

    常見的數據類型

    基本數據類型

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

    引用數據類型

    • Object
    • Date
    • function
    • RegExp
    • Array …

    棧內存(stack)

    棧內存:是一種特殊的線性表,它具有后進先出的特性,存放基本類型。

    堆內存(heap)

    區別

    1復制變量時的不同
    對于基本類型來說,一般會在變量對象上創建一個新值,然后把這個值復制到為新變量分配的類型上面
    對于引用類型來說,也會將存儲在變量對象的值復制一份到新變量的內存空間中,但是這個值的副本其實是一個指針,這個指針指向我們被賦值的對象,即不管怎么樣,引用類型的賦值其實都是引用的同一個對象

    2參數傳遞的不同
    首先我們應該明確一點:ECMAScript中所有函數的參數都是按值來傳遞的。
    原始值:只是把變量里的值傳遞給參數,之后參數和這個變量互不影響。
    引用值:對象變量它里面的值是這個對象在堆內存中的內存地址,因此它傳遞的值也就是這個內存地址,這也就是為什么函數內部對這個參數的修改會體現在外部的原因了,因為它們都指向同一個對象。

    3聲明變量時不同的內存分配:
    原始值:存儲在棧(stack)中的簡單數據段,也就是說,它們的值直接存儲在變量訪問的位置。
    引用值:存儲在堆(heap)中的對象,也就是說,存儲在變量處的值是一個指針(point),指向存儲對象的內存地址。

    檢測方法

    可以通過typeof檢測基本類型和復雜類型,不過檢測出來的復雜類型都是Object,如果想要檢測復雜類型可以通過 instanceof
    語法: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

    總結

    面試中經常會問我們基本數據類型有哪些
    我是歌謠 放棄很容易 堅持一定很酷 純屬個人總結 若有不合理之處 可選擇性關閉網頁 歡迎討論
    下一期預計開始講解原型和原型鏈部分 敬請期待

    總結

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

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。