1. 程式人生 > >Javascript學習一資料型別

Javascript學習一資料型別

1、介紹js的基本資料型別  

   Undefined、Null、Boolean、Number、String

      (1) Undefined和Undifined區別      

         null是一個表示"無"的物件,轉為數值時為0;undefined是一個表示"無"的原始值,轉為數值時為NaN。

  •   undefined:
  •   (1)變數被聲明瞭,但沒有賦值時,就等於undefined。
  •   2) 呼叫函式時,應該提供的引數沒有提供,該引數等於undefined。
  •   (3)物件沒有賦值的屬性,該屬性的值為undefined。
  •   (4)函式沒有返回值時,預設返回undefined。
  •   null:
  •   (1) 作為函式的引數,表示該函式的引數不是物件。
  •   (2) 作為物件原型鏈的終點。

        (2)資料型別之間的轉換              

                   typeof檢視,返回六個字串
                            number string boolean object undefined function
         (3)強制轉字串
                  String(變數) 可以轉任何資料型別
                  變數.toString(); 除了null undefined,其它均可
         (4)強制轉數字
                    Nunber(); 可以轉任何資料型別,只有能轉成功或不能轉成功之分。
                    轉成功就是數字,轉不成功就是NaN
                    parseInt() 轉整數
                    parseFloat() 轉小數
                    如果轉不成功,則返回NaN
        (5)隱式型別轉換
                            + - * / % ++ --
         (6)NaN
                  1、NaN同誰都不相等,包括它自己
                  2、任何涉及NaN的操作返回的都是NaN
                  3、typeof檢視返回的是number

          (7)isNaN
                      不喜歡數值(包括字串的數字),但喜歡數值型別的NaN
                      喜歡的是非數字

2複雜資料類類       

        複雜、引用資料型別(object

   資料封裝類物件:Object、Array、Boolean、Number 和 String

  其他物件:Function、Arguments、Math、Date、RegExp、Error

3 全等判定:

   相等,值是否相等,會發生型別轉換

全等,值和型別都要相等才相等,不會發生型別轉換

 

        console.log(1 == '1'); // true
        console.log(true == 1); // true
        console.log(null == undefined); // true,除此之外,它們不能和其它的值進行比較

        // === 全等,值和型別都要相等才相等,不會發生型別轉換
        console.log(1 === '1'); // false
        console.log(true === 1); // false
        console.log(null === undefined); // false

        console.log(null !== undefined); // true
        console.log(null != undefined); // false

 

  

 

3、this物件的理解 

       this總是指向函式的直接呼叫者(而非間接呼叫者);

  如果有new關鍵字,this指向new出來的那個物件;

  在事件中,this指向觸發這個事件的物件,特殊的是,IE中的attachEvent中的this總是指向全域性物件Window。

1 閉包:函式裡面套函式,被巢狀函式就叫閉包。

   閉包特點:

function init() {
    var name = "Mozilla"; // name 是一個被 init 建立的區域性變數
    function displayName() { // displayName() 是內部函式,一個閉包
        alert(name); // 使用了父函式中宣告的變數
    }
    displayName();
}
init();