1. 程式人生 > >typeof 的取值範圍 以及 typeof 和 instanceof 的區別

typeof 的取值範圍 以及 typeof 和 instanceof 的區別

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