簡單數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型的分類、堆和棧、內(nèi)存分配、復(fù)雜數(shù)據(jù)類型傳參

1.1簡單數(shù)據(jù)類型與復(fù)雜數(shù)據(jù)類型

簡單類型又叫做基本數(shù)據(jù)類型或者值類型,復(fù)雜類型又叫做引用類型。

  • 值類型:簡單數(shù)據(jù)類型/基本數(shù)據(jù)類型,再存儲時變量中存儲的是值本身,因此叫做值類型。string,number,boolean,undefined,null
  • 引用類型:復(fù)雜數(shù)據(jù)類型,在存儲時變量中存儲的僅僅是地址(引用),因此叫做引用數(shù)據(jù)類型,通過new關(guān)鍵字創(chuàng)造對象(數(shù)據(jù)系統(tǒng)、自定義對象)。
    Object、Array、Date等

1.2堆和棧

1、棧(操作系統(tǒng)):由操作系統(tǒng)自動分配釋放存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧;簡單數(shù)據(jù)類型放在棧里面。
2、堆(操作系統(tǒng)):存儲復(fù)雜類型(對象),一般由程序員分配釋放,若程序員不釋放,由垃圾回收機制回收。復(fù)雜數(shù)據(jù)類型放在堆里面。

1.3內(nèi)存分配

  1. 簡單數(shù)據(jù)類型 是存放在棧里面 里面直接開辟一個空間存放的是值
  2. 復(fù)雜數(shù)據(jù)類型 首先在棧里面存放地址 十六進(jìn)制表示 然后這個地址指向堆里面的數(shù)據(jù)


    image.png

1.4復(fù)雜數(shù)據(jù)類型傳參

image.png
   function Person(name) {
            this.name = name;
        }

        function f1(x) { // x = p
            console.log(x.name); // 2. 這個輸出什么 ?  劉德華   
            x.name = "張學(xué)友";
            console.log(x.name); // 3. 這個輸出什么 ?   張學(xué)友
        }
        var p = new Person("劉德華");
        console.log(p.name); // 1. 這個輸出什么 ?   劉德華 
        f1(p);
        console.log(p.name); // 4. 這個輸出什么 ?   張學(xué)友
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容