優雅的JavaScript-數據類型

變量的數據類型


原始數據類型      引用數據類型
Undefined        對象
Null             數組
Boolean          函數
Number
String

原始數據類型---Undefined


1.Undefined 類型只有一個值,即特殊的Undefined;
   在使用var 聲明變量但未對其進行初始化,這個變量值爲Undefinded
   如:var message;
2.Undefinded指的是未定義的類型,如果alert(a)一個不存在的變量,會直接報錯,而不是Undefined
  可見Undefined和正真未聲明還是有區別:
       1.他是一種特殊類型
       2。但是typeof未定義類型或者不存在不變量都返回Undefined
   例如:
    <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>


<script type="text/javascript">
//alert(a);//未定義就使用會報錯
//    var b;
//alert(b);
//
//alert(typeof b);
var c=5;
alert("c:"+c);


</script>
</body>
</html>




原始類型---null


它只有一個專用值null,即它的字面量,值undefined實際上是從null派生來的,因此在ECMAScript中將兩者定義爲相等

例如:
   alert(null==undefined);//輸出true
   儘管兩者的值相等但他們的含義不同
   undefined是聲明瞭變量但未對其初始化時賦予該變量的值
   null用於表示尚未存在的對象,如果函數或者方法要返回對象,此時如果找不到部隊向,通常直接返回null
注意:
   如果單純定義一個變量的初始化值爲null,他返回的類型爲object

原始數據類型---Boolean


只有兩個值 true、false  ,區分大小寫和Java裏一樣
例如:
    
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">
//var flag=true;
//alert(typeof  flag);
//alert(2==5);
alert(undefined==null);
</script>
</body>
</html>

原始數據類型---number


1.數值的分類:
    1.整型:
        八進制:
        十六進制:
        十進制:
    2.浮點型
    3.特殊值:
       Infinity   無窮大
       NaN(0/0)     不是數值類型



如:
 
 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">
    var num = 6.34;
    /*//定義八進制,一般以0開頭,組成部分0~7之間的數字
     var num1=012;
     //十六進制,一般以0X開頭,組成部分0~9,A~F之間的數字和字符
     var num2=0x78;
     var num3=-3/0;
     //infinity和-infinity,number數據類型的兩個特殊值

     var num4=-infinity;
     var num5=0/0;//NaN
     //NaN是number類型的一個特殊值,不等於任何類型,連自己都不相等*/
   /* alert(NaN == NaN);
    alert(typeof num);*/

    var num6=28;//默認就是28
    var num7=.9//默認爲0.9
    //通過isFinite()判斷一個數是否有限值,有限就返回true,否則返回false
//    alert(isFinite(-6/0));
    //isNaN():判斷是否是非數字有就返回true,否則返回false
alert(isNaN("ssfdg"));
</script>
</body>
</html>

浮點型:


1.浮點型定義:
    浮點數字:該數字鐘包含一個小數點,而且小數點後面必須至少有一位數字
       
    
2.浮點型數據的類型:
   1.直接含有小數點  如:3.15
   2.還可以使用指數計數法(實數後面跟一個e或者E,後面跟正負號,後面再加上一個整型的指數)1.243243E=-32
 

特殊值


1.Infinity:無窮大
    1.Infinity:正無窮大
    2.-Infinity:負無窮大
  通過isFinite()判斷是否有限大
2.NaN
   1.代表非數字值的特殊值,該屬性用於指示某個值不是數字
   2.NaN有兩個特點:
       1.任何和NaN的操作都是會返回NaN
       2.NaN與任何數值都不相等,包括自身
   3.不能用number.Nan比較來檢測一個值是否是數字,而是使用isNaN()來比較
   4.isNaN()函數如果X是特殊的非數字值NaN
      例如:
         alert(isNaN(3));//false
         alert(isNaN(“blue”));//true
         
          alert(isNaN(true));//false
          alert(isNaN(null));//false
          alert(isNaN(undefined));//true


原始數據類型---String


1.由單引號或者雙引號括起來的字符序列
  如:“122”,
2.轉義字符:
    用一些普通的字符的組合來替代一些特殊字符,由於其組合改變了原來字符表示的含義,稱之爲轉義
    1.字符型常量:表示的值是字符類型變量所能包含的值,通常用AscII表達式來表示一個字符常量
    或者可以用單引號或者雙引號內加上反斜槓表示轉義字符
    轉義字符:
       \'    單引號
       \"    雙引號
       \&   和號
       \\   反斜槓
       \n   換行符
       \r  回車符
      \t   製表符
      \b   退格符
      \f   換頁符
    

類型的轉換


1.隱式轉換
2.顯示轉換

隱式轉換


1.轉換成布爾類型
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">
/*    //Undefined自動轉換成false
   var a;
   if(a){
      alert("true")
   }else{
       alert("false");
   }
//null自動轉換成false
    if(null){
       alert("轉換成true");
    }else{
        alert("轉換成false");
    }*/
//nnmber --->boolean
//0,0.0,NaN-->false   其他數值轉換成true
/*
* String---》Boolean
* ""轉換false;
* 對象轉換成true
*
* */
    var num=new Object();
    var date=new Date();
    if(date){
        alert("轉換成true ");
    }else{
        alert("轉換成false");
    }



</script>
</body>
</html>

結論:
   1.Undefined--->false
   2.null----》false
   3.數值  0,0.0 ,NaN---->false    其他數值都是true
   4.字符串    ""--->false    "有內容"----》true
   5.其他對象都是true

2.轉換成數值類型
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">
/*
undefined---->NaN
null---->0
boolean--->number 類型
      true----》1
      false----》0
String---->number類型
    ""---->0
    "234"----->234
    "a123"----->NaN
    "0x90"---->轉換成十六進制對應的十進制

  */
alert("0x90t"-6);
</script>
</body>
</html>

結論:
      
undefined---->NaN
null---->0
boolean--->number 類型
      true----》1
      false----》0
String---->number類型
     ""---->0
    "234"----->234
    "a123"----->NaN
    "0x90"---->轉換成十六進制對應的十進制

3.轉換成字符串類型

結論:
    number----->String 
    23---->"23"
    NaN--->"NaN"
    infinity----->"infinity"
boolean----->string
     false--->"false"
     true---->"true"
     
     undefined---String 
        undefined---->"undefined"

顯示轉換


1.Boolean類型
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">
//Boolean();小括號裏面寫的是參數,把要轉換的值放進小括號裏,就得到一個Boolean類型的值
  /*undefined轉換成false
    null轉換成false
    number---->boolean
       0,0.0 ,NaN---->false
       其他數值爲true

    String----》Boolean*/
       var flag=Boolean(new Date());
       alert(flag+"  "+typeof (flag))
//flag----》true



</script>
</body>
</html>

結論:
    類型轉換規則Boolean();
       0,-0----》false   1,2,3---->true   NaN--->false
       空字符串------>false   其他爲true
       undefined------>false
       null----->false
       
顯示轉換---數值類型轉換

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">
var str="23.34dhfdshfkjhkds";
var str1="23.44vfdsgf";
alert(parseInt(str));
var num=parseFloat(str1);
alert(num);
</script>
</body>
</html>

結論:
   Numbetr()可以將其他類型轉換成數值類型
     undefined--->NaN
     null---->0
     true---->1
     false---->0
     字符串--->如果可以解析爲數值,則轉換成數值,否則爲NaN,0
     空字符串----》0
     
     
     parseInt()和ParseFloat()使用----->只能將字符串轉類型換成數值類型
     1.字符串全部爲數字,“234“------》234
     2.字符串中包含數字和非數字(從左往右截取,直到遇到第一個非數字爲止)
     “a234”---->NaN
      "234hfshdkjf"----->234
      ""----->NaN
      
      
      
     顯示轉換----字符串類型
     
     結論:
       1.String()函數可以將其他的類型強制轉換成字符串類型
       數值-----》數值本身
       字符串-----》字符串本身
       true---》“true”
       false----》“false”
       null--->“null”
     
     


發佈了33 篇原創文章 · 獲贊 9 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章