使用typeof()或者typeof進行基本數據類型檢測( typeof(X)等於typeof X 返回的是數據類型)
數據類型有:基本數據類型,字符串(string),布爾值(true/false),未定義undefined,null(空值),數組(array),對象類型,函數(function(){}) ,正則表達式。
<script type="text/javascript">
console.log(typeof 4); //number
console.log(typeof (4));//number
console.log(typeof "str");//字符串
console.log(typeof true);//布爾值boolean
console.log(typeof undefined);//未定義undefined
console.log(typeof a);//a是未定義的變量,所以就是undefined。
console.log(typeof null);//空值,對象類型
console.log(typeof []);//數組,對象類型
console.log(typeof {});//對象類型
console.log(typeof function(){});//函數,function
console.log(typeof /a/);//正則表達式,對象(瀏覽器不同,有可能返回function)
</script>
以上所有都是基本數據類型,只有基本數據類型才可以使用 typeof()或者typeof 來返回所屬的是什么類型數據。
//引用類型只能使用 instanceof
//使用instanceof(X) 或者 instanceof X 檢測數據類型
//翻譯為:[] 是 Array的實例,返回true
console.log([] instanceof Array);//[] 是 Array的實例,返回true
console.log([] instanceof (Object));//[]是Object的實例,返回true
console.log({} instanceof Object);//{}是Object的實例,返回true
console.log({} instanceof Array);//{}不是 Array的實例,返回false
console.log(1 instanceof Number);//基本數據類型無法使用instanceof 進行檢測數據類型,因為基本數據類型使用instanceof進行檢測,結果都是返回false。
document.write(typeof null);//先判斷Null是什么事數據類型,再來決定返回什么類型的實例。
document.write(null instanceof Object);//先判斷null是什么數據類型。再來決定返回什么類型的實例。
null是Null類型,屬於基本類型,但是typeof null 返回的是字符串'object';instanceof不能檢測基本數據類型,只要是基本數據類型和instanceof連用,返回的都是false。