面向?qū)ο?1-數(shù)據(jù)類型

基本類型和復(fù)雜類型

  1. 基本類型(簡單數(shù)據(jù))
  • string
  • number
  • boolean
  • undefined
  • null
  1. 復(fù)雜類型(復(fù)雜數(shù)據(jù)類型)
  • Object
  • Array
  • Date
  • RegExp
  • Function
  • String
  • Number
  • Boolean
  • null
  • Math

值類型和引用類型

  1. 值類型和引用類型簡單說明
  • 值類型主要有:

    • 數(shù)值
    • 字符串
    • 布爾類型
    • undefined
    • null
  • 引用類型主要有:

    • 對象(Object類型)
    • 數(shù)組(Array)
    • 函數(shù) (Function)

值類型:保存為簡單的數(shù)據(jù)值,賦值只是簡單的數(shù)據(jù)值的復(fù)制

引用類型:保存為對象,其本質(zhì)是指向內(nèi)存位置的引用(地址),賦值是對地址的復(fù)制

值類型代碼示例

  var num1 = 10;
  var num2 = num1;    //把num1的值復(fù)制一份給num2,num1和num2的值相等,除此之外沒有任何其他關(guān)系

  console.log(num1,num2);     //10,10
  console.log(num1 == num2);  //true

  num2 = 20;          //修改num2的值為20,不會對num1產(chǎn)生任何的影響
  console.log(num1,num2);     //10,20
  console.log(num1 == num2);  //false

引用類型代碼示例

    var arr1 = [1,2,3];
    var arr2 = arr1;
    console.log(arr1,arr2);             //[1,2,3],[1,2,3]
    console.log(arr1 == arr2);          //true

    var arr3 = [1,2,3];
    console.log(arr3);                  //[1,2,3]
    console.log(arr1 == arr3,arr2 == arr3); //false,false

    /**
     * 代碼說明:
     * arr1和arr2在比較的時候,值相等(都是[1,2,3]),且引用相等(都指向堆中同一塊數(shù)據(jù)),因此arr1和arr2相等
     * arr3和arr1以及arr2比較的時候,值相等([1,2,3]),但是引用不相等(arr3指向的是堆中另外一塊數(shù)據(jù)),因此不等
     * 總結(jié):引用類型在比較相等的時候,只有值和引用都相等才相等
     * */
  1. 值類型和引用類型的賦值
    賦值操作(=):把當(dāng)前變量存儲的值復(fù)制一份給接收的變量

值類型的賦值:把當(dāng)前變量存儲的值(具體的數(shù)據(jù))復(fù)制一份給接收的變量 引用類型的賦值:把當(dāng)前變量存儲的值(具體數(shù)據(jù)的引用即地址)復(fù)制一份給接收的變量

//引用類型使用注意
console.log(arr1,arr2);         //[1,2,3],[1,2,3];
console.log(arr1 == arr2);      //true
arr1.push(4);
console.log(arr1,arr2);         //[1,2,3,4],[1,2,3,4]

/**
 * 代碼說明:因為arr1和arr2內(nèi)部的引用指向的是同一塊數(shù)據(jù),所以修改了arr1會對arr2也產(chǎn)生影響
 * */
  1. 值類型和引用類型作為函數(shù)參數(shù)處理
    形參:占位用的參數(shù),用來接收數(shù)據(jù)的參數(shù)而已

實參:實際傳遞的參數(shù) ---

函數(shù)的調(diào)用:在函數(shù)調(diào)用的時候,函數(shù)默認(rèn)會把實參的值賦值給形參

值類型作為參數(shù):在函數(shù)內(nèi)部對形參變量進行修改不會影響到實參的值

引用類型作為參數(shù):在函數(shù)內(nèi)部對形參變量進行修改會影響到實參的值,因為他們的引用指向同一個對象

  1. 值類型和引用類型的相關(guān)圖示
    基本類型的賦值
  var str1 = "hello zhangsan";
  var str2 = str1;


引用類型的結(jié)構(gòu)和賦值

```
    var car = {
    color:"黑色",
    number:"B99"
    };

    var p1 = {
    name:"王寶寶",
    age:30,
    car:car
    };
```
   var obj1 = {
      name:"lisi",
      age:18
  };

  var obj2 = obj1;
最后編輯于
?著作權(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ù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 01 值類型和引用類型簡單說明 值類型主要有: 引用類型主要有: 值類型: 儲存的是具體的值。保存為簡單的數(shù)據(jù)值,...
    碼農(nóng)的世界你不懂閱讀 424評論 0 0
  • 使用 typeof bar === “object” 判斷 bar 是不是一個對象有神馬潛在的弊端?如何避免這種弊...
    Roselle_c閱讀 387評論 0 0
  • 一、數(shù)組 數(shù)組是一個有序列表,所以有下標(biāo). 并且數(shù)組在js中可以存在任意類型的數(shù)據(jù).并且同一個數(shù)組中可以存放不同的...
    空谷悠閱讀 560評論 0 1
  • 客戶端JavaScript的作用: 客戶端數(shù)據(jù)計算 表單輸入驗證 瀏覽器事件的觸發(fā)和處理 網(wǎng)頁特殊顯示效果制作 服...
    喵小姐貓貓閱讀 237評論 0 0
  • 函數(shù)聲明和函數(shù)表達式有什么區(qū)別 (*)解析器會率先讀取函數(shù)聲明,并使其在執(zhí)行任何代碼之前可以訪問;函數(shù)表達式則必須...
    coolheadedY閱讀 446評論 0 1

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