typeof 的取值範圍 以及 typeof 和 instanceof 的區別
阿新 • • 發佈:2018-12-17
typeof 的取值範圍是Number、String、boolean、undefined、object、function
1.typeof : 主要用於判斷資料是不是基本資料型別:String、Number、Object、Null、Undefined、boolean , 但是無法判斷 null(空),Array(陣列)和正則表示式,只是將它們統一歸為物件型別! typeof 返回的結果是字串,表示資料的型別
var b=true; console.log(typeof b);//'boolean' var c=""; console.log(typeof c);//'String' var d=1; console.log(typeof d);//'Number' var e,f=undefined; console.log(typeof e,typeof f);//'undefined' 'undefined' var a=null; console.log(typeof a);//'object' var obj={}; console.log(typeof obj);//'object' var arr=[1,2,3]; console.log(typeof arr);//'object' var fn=function(){ alert("aaa"); } console.log(typeof fn);//'function console.log(typeof /\d/)//object
2.instanceof : 主要的目的是用來檢測引用型別,判斷Array和RegExp,無法準確判斷Function instanceof 返回的是Boolean型別的true與false
console.log([] instanceof Array);//true console.log({} instanceof Object);//true console.log(/\d/ instanceof RegExp);//true console.log(function(){} instanceof Object);//true console.log(function(){} instanceof Function);//true
instanceof 無法判斷基本型別
console.log('' instanceof String);//false
console.log(1 instanceof Number);//false