js判斷資料型別的幾種方法

2022-07-13 06:15:50 字數 1811 閱讀 5613

1. typeof

鑑於 ecmascript 是鬆散型別的,因此需要有種手段來檢測給定變數的資料型別,typeof 就是負責提供這方面資訊的操作符。對乙個值使用 typeof 操作符可能返回下列某個字串:( 缺點:對於陣列和物件或null 都會返回object)

"undefined"    ——如果這個值未定義;

"boolean"    ——如果這個值是布林值;

"string"     ——如果這個值是字串;

"number"         ——如果這個值是數值;

"object"   ——如果這個值是物件或 null;

"function"  ——如果這個值是函式。

例如:var message = "some string";

alert(typeof message);   //"string"

alert(typeof(message));    //"string"

alert(typeof 95);             //"number"  

var y=true;

alert(typeof y);      //"boolean"

var a = function() ;   

alert(typeof a);     //"function"

var b = [1,2,3];

alert(typeof b);        //"object"

var c = ; 

alert(typeof c);     //"object"

var d = null;

alert(typeof d);       //"object"

2. 型別判斷

型別判斷,一般就是判斷是否是陣列,是否是空物件

。    

(1) 判斷是否是陣列

定義乙個陣列:var a = [1,2,3,4,5];

方法一:

tostring.call(a); // "[object array]" 

方法二:

a instanceof array; //true 

方法三:

a.constructor == array; //true

第一種方法比較通用,也就是object.prototype.tostring.call(a)的簡寫。

instanceof和constructor判斷的變數,必須在當前頁面宣告的,比如,乙個頁面(父頁面)有乙個框架,框架中引用了乙個頁面(子頁面),在子頁面中宣告了乙個a,並將其賦值給父頁面的乙個變數,這時判斷該變數,array == object.constructor會返回false;

(2)判斷是否是空物件

定義乙個變數:var obj = {};

方法一:

json.stringify(obj); // "{}"通過轉換成json物件來判斷是否是空大括號

方法二:

if(obj.id)這個方法比較土,大多數人都能想到,前提是得知道物件中有某個屬性。

方法三:

function isemptyobject(e) //true isemptyobject(obj);

//false isemptyobject();

這個方法是jquery的isemptyobject()方法的實現方式。

js判斷資料型別幾種方法

js資料型別的判斷主要有四種方法 typeof instanceof constructor object.prototype.tostring.call 資料型別的包括 number boolean string symbol object array undefined null functio...

js判斷資料型別的幾種方法

判斷js中的資料型別有一下幾種方法 typeof instanceof constructor prototype type jquery.type 接下來主要比較一下這幾種方法的異同。先舉幾個例子 var a iamstring.var b 222 var c 1,2,3 var d new da...

js中判斷資料型別的幾種方法

1.typeof typeof data 返回data的型別字串形式。如 typeof a string typeof返回的值 1 undefined 如果這個值未定義 2 boolean 如果這個值是布林值 3 string 如果這個值是字串 4 number 如果這個值是數字 5 functio...