typeof

JS中的變量是鬆散類型(即弱類型)的,可以用來保存任何類型的數據。

typeof 可以用來檢測給定變量的數據類型,可能的返回值:

1. ‘undefined’ --- 這個值未定義;

2. 'boolean'    --- 這個值是布爾值;

3. 'string'        --- 這個值是字符串;

4. 'number'     --- 這個值是數值;

5. 'object'       --- 這個值是對象或null;

6. 'function'    --- 這個值是函數。


1.檢查一個變量是否存在,是否有值.
typeof在兩種情況下會返回"undefined":一個變量沒有被聲明的時候,和一個變量的值是undefined的時候.例如:

var a;
var b = undefined;
alert(typeof(a)); //undefined
alert(typeof(b)); //undefined

還有其他辦法檢測某個值是否是undefined:

alert(a === undefined);//true
alert(b === undefined);//true

2.判斷一個值不等於undefined也不等於null
問題:如果你想檢測一個值是否被定義過(值不是undefined也不是null),那麼你就遇到了typeof的一個怪異表現:

alert(typeof(null));    //object


3.原始值的類型是什麼?

typeof是最好的用來查看某個原始值的類型的方式.

alert(typeof("123")); //string
alert(typeof(123)); //number
alert(typeof(true)); //boolean


5.某個值是否是函數
typeof可以用來檢測一個值是否是函數.

alert(typeof(function (){}));

原則上說,instanceof Function也可以進行這種需求的檢測.但是,瀏覽器有一個怪癖:每一個框架和窗口都有它自己的全局變量.因此,如果你將某個框架中的對象傳到另一個框架中,instanceof就不能正常工作了,因爲這兩個框架有着不同的構造函數.這就是爲什麼ECMAScript5中會有Array.isArray()方法的原因.


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