JavaScript檢測型別

2021-07-28 23:01:58 字數 1808 閱讀 6160

es有五種簡單的資料型別:undefined,null,boolean,number和string,還有一種複雜的資料型別object。對乙個值使用typeof操作符可能返回下列某些字串:

「undefined」——如果這個值未定義;

「boolean」——如果這個值是布林值;

「string」——如果這個值是字串;

「number」——如果這個值是數值;

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

「function」——如果這個值是函式。

以下是使用typeof的例子:

var arr = ;
var str = 'string';var num = 100;var fun = function() ;var obj = {};var nothing;var bool = true;console.log(typeof arr); // objectconsole.log(typeof str); // stringconsole.log(typeof num); // numberconsole.log(typeof

fun); // fucntionconsole.log(typeof obj); // objectconsole.log(typeof nothing); // undefinedconsole.log(typeof bool); // boolean

由上可知,typeof對於object、array、null都會返回物件,同時,在safari及之前的版本、chrome7及之前的版本對正規表示式使用typeof操作符時會返回「function」,而其他瀏覽器在這種情況下會返回「object」。另外,在使用typeof操作符時,也可當其為函式一樣使用,例如typeof(90);返回「number」。

typeof操作符能夠很好的檢測出string、number、boolean、undefined的值,但是對於object和array(實際上array也是一種物件),那麼就無法很好地檢測出來了。instanceof操作符能夠檢測某個例項是否是某個特定物件的例項,以下是其使用方法:

var object1 = function() 

var object2 = function()

var arr = ;

var obj1 = new object1();

var obj2 = new object2();

console.log(obj1 instanceof object)

console.log(obj1 instanceof object1); // true

console.log(obj1 instanceof object2); // true

console.log(obj2 instanceof object2); // true

console.log(obj2 instanceof object1); // true

console.log(arr instanceof array); // true

console.log(null instanceof object); // false

由上面的示例可以看出,instanceof操作符能夠判斷乙個例項的型別,但是這個函式也有其缺陷:它假定只有乙個全域性執行環境。如果網路中包含過個框架,那麼實際上就存在兩個以上不同的全域性執行環境,從而存在兩個以上不同版本的array建構函式。此時,檢測是都是陣列型別的最好方法是使用array.isarray(params)函式,可以準確的檢測其是否是陣列。

javascript 型別檢測

1 檢測字串 數值 布林值 undefined function 使用typeof 在safari和chrome中檢測正則也會返回 function 2 檢測null 應用 3 檢測其它物件 方法一 利用instanceof constructor 再某些ie版本中存在跨iframe問題,每個ifr...

JavaScript型別檢測

型別檢測方法如下 typeof,instanceof,object.prototype.tostring,constructor,duck type.1.部分示例如下 typeof 100 number typeof true boolean typeof function function typ...

JavaScript 型別檢測

返回乙個字串,來表示資料的型別 typeof 運算子用來檢測建構函式是否存在與檢測物件的原型鏈上,返回布林 instanceof 精確判斷物件的型別,使用call指向 this 檢測物件,string和array構造重寫了tostring 方法 object.prototype.tostring.c...