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...