js的六大數據類型


js中有六大數據類型,包括五種基本數據類型number、boolean、null、undefiined、string和混合數據類型object

我們可以用typeof操作符來檢測變量的數據類型(輸出的是一個關於數據類型的字符串)

 1          var a=1;
 2             console.log(typeof a);//number
 3          var b="hello";
 4             console.log(typeof b);//string
 5          var c=true;
 6             console.log(typeof c);//boolean
 7          var d=null;
 8             console.log(typeof d);//object(null是空對象引用或者說是指針)
 9          var e=undefined;
10             console.log(typeof e);//undefined
11          var f=function(){
12             document.write("hello world");
13          };
14             console.log(typeof f);//function
15          var g=[1,2,3];
16             console.log(typeof g);//object

以上代碼中,null進行typeof操作符后,結果是object,是因為null被當做一個空對象引用。

  1、string類型

        在string類型中,單引號和雙引號的作用效果完全一;

         string類型有length屬性,可以獲取字符串的長度。var str = “hello”;console.log(str.length);//5

        string類型的值是不可變的,要改變一個字符串的值,首先要銷毀原來的字符串,然再用另一個包含新值的字符串填充該字符串

1             var lang="java";
2             lang+="script";
3             console.log(lang);//javascript

 上面這段代碼。先創建一個長度為10的字符串,然后把“java”和“script”填充進去,得到“javascript”,最后銷毀“java”和“script”,這個過程發生在后台

  字符串轉換:轉型函數String()適用於任何數據類型(null、defined轉換后為null和defined),toString()方法(null和defined沒有toString()方法)

2、number類型

       number類型包含整數和浮點型(浮點型數值必須包含一個小數點且小數點后至少有一位數字)

       可以用一個值-0來將其轉換成一個數字

        浮點數會自動轉換為整數

         var a = 1.00;
         console.log(a);//1
         var b=0.1,c=0.2;
         console.log(b+c);//0.30000000000000004

       這里出現出現0.1+0.2不等於0.3的原因是十進制到二進制的轉換導致的精度問題。使用了IEEE754浮點數格式”來存儲浮點類型(float 32,double 64)的任何編程語言都有這個問題。

NaN:非數字類型  特點:1、涉及到任何關於NaN的操作,都會返回NaN    2、與自身不相等

isNaN()用來確定一個值是否為NaN  若isNaN()的參數不是number類型,isNaN()首先會嘗試將該參數轉換為數值類型,然后對轉換后的結果是否為NaN進行判斷。空字符串和布爾值可以強制轉換為數值類型0或1,所以返回false

isNaN(NaN);       // true
isNaN(undefined); // true
isNaN({});        // true

isNaN(true);      // false
isNaN(null);      // false
isNaN(37);        // false

// strings
isNaN("37");      // false: 可以被轉換成數值37
isNaN("37.37");   // false: 可以被轉換成數值37.37
isNaN("37,5");    // true
isNaN('123ABC');  // true:  parseInt("123ABC")的結果是 123, 但是Number("123ABC")結果是 NaN
isNaN("");        // false: 空字符串被轉換成0
isNaN(" ");       // false: 包含空格的字符串被轉換成0

// dates
isNaN(new Date());                // false
isNaN(new Date().toString());     // true

isNaN("blabla")   // true: "blabla"不能轉換成數值
                  // 轉換成數值失敗, 返回NaN

Number()轉型函數,可以用於任何數據類型;

parseInt(),將值轉換為整型,用的比較多;

parseFloat();將值轉換為浮點型。

后面兩者只能 用於字符串

3、Boolean類型

該類型只有兩個值,true和false

Boolean():將某個值轉換為Boolean類型。

如果邏輯對象無初始值或值為0、-0、false、undefined、null、""、NaN,那么對象的值為false,否者其值都為true(即使當自變量的值為字符串“false”時);

1          console.log(Boolean(0));//false
2          console.log(Boolean(NaN));//false
3          console.log(Boolean(null));//false
4          console.log(Boolean(undefined));//false
5          console.log(Boolean("false"));//true

 

4、null類型

   null是一個對象,但是為空,所以typeof null的時候,結果為object

   null在參與數值運算的時候會自動轉換為0參與運算

   如果定義的變量用來保存對象,最好將該變量初始化為null

   實際上undefined值是派生自null值的,所以undefined==null

  類型轉換:Boolean(null)//false

                   Number(null)  //0

                   String(null)   //'null'

   注意:null是空對象指針,{}是空對象,[]是空數組,三者不一樣。

             null不能添加自定義屬性

5、undefined類型

     只有一個值即undefined,使用了var聲明變量,但未給變量初始化值,那么這個變量的值就是undefined。

        var a="hello world";
        var b;
        console.log(typeof a);//string
        console.log(typeof b);//undifined

    出現場景:1、已聲明未賦值的變量

                       2、獲取對象不存在的屬性

                       3、無返回值的函數的執行結果

                       4、函數的參數沒有傳入

     類型轉換:Boolean(undefined)//false

                      Number(undefined) //NaN

                     String(undefined)//'undefined'

6、object類型

  object 屬於引用數據類型

對象是帶有屬性和方法的特殊數據類型

   js中的所有事物都是對象:字符串,數組,函數等。js也允許自定義對象。暫不多介紹

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM