js 數據類型檢測

5種基本數據類型:Undefined、Null、Boolean、Number和String。
1中複雜數據類型:Object函數

使用typeof檢測

typeof操做符返回一個字符串,表示未經求值的操做數的類型。prototype

typeof可能的返回值:code

  • "undefined"——若是這個值未定義;對象

  • "boolean"——若是這個值是布爾值;字符串

  • "string"——若是這個值是字符串;string

  • "number"——若是這個值是數值;io

  • "object"——若是這個值是對象或 null;console

  • "function"——若是這個值是函數。function

注意事項:
typeof null 返回 object。
typeof 是一個操做符而不是函數,圓括號儘管能夠使用,但不是必需的。
//typeof str 或者 typeof(str) 都可以object

使用instanceof檢測

用來檢測引用類型:知道一個值是什麼類型的對象。返回true/false。

全部引用類型的值都是 Object 的實例。

  • 若是使用 instanceof 操做符檢測基本類型的值,則該操做符始終會返回 false,由於基本類型不是對象。可是使用new關鍵字構造基本數據的包裝對象的實例時instanceof操做符也會返回true。(instanceof只適用於構造函數建立返回的複雜對象和實例。)

  • 用instanceof檢測undefined和null是否是Object實例時,返回false。

function Person(){}
    function Student(){}
    Student.prototype = new Person();
    var John = new Student();
    console.log(John instanceof Student); // true
    console.log(John instancdof Person);  // true
    console.log(John instancdof Object);  // true
    var a;
    
    
    用instanceof檢測undefined和null是否是Object實例時,返回false。
    typeof a;    //"undefined"
    a instanceof Object;  //false
    var b = null;    
    typeof b;    //"object"
    b instanceof Object;    //false

使用constructor檢測

相關文章
相關標籤/搜索