js檢測類型;檢測引用類型 (instanceof)

檢測類型:
要檢測一個變量是不是基本數據類型?typeof 操作符是最佳的工具。說得更具體一
點, typeof 操作符是確定一個變量是字符串、數值、布爾值,還是 undefined 的最佳工具。如果變
量的值是一個對象或 null ,則 typeof 操作符會像下面例子中所示的那樣返回 "object" :

var s = "Nicholas";
var b = true;
var i = 22;
var u;
var n = null;
var o = new Object(); 
alert(typeof s); //string
alert(typeof i); //number
alert(typeof b); //boolean
alert(typeof u); //undefined
alert(typeof n); //object
alert(typeof o); //object

雖然在檢測基本數據類型時 typeof 是非常得力的助手,但在檢測引用類型的值時,這個操作符的
用處不大。通常,我們並不是想知道某個值是對象,而是想知道它是什麼類型的對象。爲此,ECMAScript
提供了 instanceof 操作符,其語法如下所示:

result = variable instanceof constructor
如果變量是給定引用類型的實例,那麼
instanceof 操作符就會返回 true 。請看下面的例子:

alert(person instanceof Object);  // 變量 person 是 Object 嗎?
alert(colors instanceof Array); // 變量 colors 是 Array 嗎?
alert(pattern instanceof RegExp); // 變量 pattern 是 RegExp 嗎?
根據規定,所有引用類型的值都是 Object 的實例。因此,在檢測一個引用類型值和 Object 構造
函數時, instanceof 操作符始終會返回 true 。當然,如果使用 instanceof 操作符檢測基本類型的
值,則該操作符始終會返回 false ,因爲基本類型不是對象。

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