JavaScript的數據類型及區別

JavaScript的數據類型及區別

一.JavaScript的數據類型分類

js的數據類型分爲值類型(基礎類型/原始類型)和引用數據類型兩大類。其中

  • 值類型(基本類型/原始類型):字符串(String) 數字(Number) 布爾(Boolean) 對空(Null) 未定義(Undefined) Symbol(es6新增的,獨一無二)
  • 引用數據類型(混合數據類型):對象(Object) 數組(Array) 函數(Function)

1.值類型

    // 1.字符串  string     由單引號 或 雙引號 包含的內容
    var str1="趙凡";
    var str2='趙凡Plus';
    console.log(str1,str2);
    // 字符串的拼接    +
    console.log(str1+"Pro"+str2);


    // 2.數字  number    整數型   浮點型
    var num1=10;
    console.log(num1);
    var num2=10.00;
    console.log(num2);
    // 科學計數法   e   10的多少次方
    var num3=8888e5;
    console.log(num3);
    var num3=8888e-8;
    console.log(num3);
    // 進制   
    var num4=010;//0開頭的代表  八進制
    console.log(num4);
    var num5=0x11a;//0123456789abcdef     0x開頭表示十六進制
    console.log(num5);

    // 3.布爾(值) Boolean   邏輯  只包含兩個值  true  false
    var bool1=true;
    var bool2=false;
    console.log(bool1);
    console.log(bool2);
    if(bool2){
        console.log("真")
    }else{
        console.log("假")
    }


    // 4.對空  null    清空變量
    var a="沈春陽";
    var b=null;
    a=null;
    console.log(a);//null
    console.log(b);
    var x=null;
    

    // 5.未定義  undefined    聲明 未賦值
    var n;
    console.log(n);//undefined

2.引用數據類型

    // 1.對象  object   {key:value,key:value...}   鍵值對
    var obj1={
        name:"諸葛成",
        sex:"不詳",
        age:22,
        hobby:function(){
            console.log("幹啥啥不行")
        }
    }
    console.log(obj1);
    console.log("姓名:"+obj1.name);
    console.log("性別:"+obj1.sex);
    obj1.hobby();


    // 2.數組   array   [數組項1,數組項2,...]  數組項可以使任意數據類型
    var arr1=[0,1,2,3,4,5];
    console.log(arr1);
    var arr2=[0,"hello",true];
    console.log(arr2);
    // 數組的索引值   從0開始
    console.log(arr2[0]);
    console.log(arr2[1]);


    // 3.函數  function    方法   功能
    var func1=function(){
        // 執行代碼塊
        console.log("這是一個方法")
    }
    // 調用方法/函數
    func1();

3.值類型數據與引用數據類型的區別

    // 值類型:string number boolean null undefined  symbol
    var m = 10;
    var n = m;
    console.log(m);
    console.log(n);
    m = 20;
    console.log(n); //20
    console.log(m); //10



    // 引用類型:object array function
    var obj1 = {
        name: "王選東"
    }
    console.log(obj1); //{name:"王選東"}
    var obj2 = obj1;
    console.log(obj2); //{name:"王選東"}

    obj2.name = "王大炮";
    console.log(obj2); //{name:"王大炮"}
    console.log(obj1); //{name:"王大炮"}

根據以上代碼可以看出,變量的數據類型爲值類型時,兩個變量其中一個改變不會影響兩外一個值,而變量的數據數據類型爲引用數據類型時,兩個變量其中一個變量改變會影響另一個變量的值。
在這裏插入圖片描述

4.數據類型的判斷

    // 判斷數據類型   typeof   返回數據類型
    var num=0;
    console.log(typeof(num));//number
    var str="";
    console.log(typeof str);//string
    var bool=false;
    console.log(typeof bool);//boolean
    var x=null;
    console.log(typeof x);//object   null   空對象
    var y;
    console.log(typeof y);//undefined

    var obj={name:"張三"};
    console.log(typeof obj);//object
    var arr=[1,2,3,4,5];
    console.log(typeof arr);//object
    var func=function(){};
    console.log(typeof func);//function

//使用 typeof 運算符時採用引用類型存儲值會出現一個問題,無論引用的是什麼類型的對象,它都返回 "object"。

//與 typeof 方法不同的是,instanceof方法要求開發者明確地確認對象爲某特定類型。通常來講,使用 instanceof 就是判斷一個實例是否屬於某種類型。

    // instanceof   操作符
    console.log(arr instanceof Array);
    console.log(obj instanceof Array);

    // Array.isArray()    是否是一個數組
    console.log(Array.isArray(arr));
    console.log(Array.isArray(obj));

5.數據類型的轉換


    // 數據類型的轉換
    console.log(typeof String(num));//string
    console.log(Number(bool));//0
    console.log(Boolean(str));//false

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章