JS數據類型檢測
- js中的數據類型分爲基本類型和引用類型,基本類型有:String、Number、Boolean、Null、Undefined,引用類型有:Object
- 判斷數據類型一般有4種方法:typeof、instanceof、constructor、toString
1.typeof
- typeof 返回一個表示數據類型的字符串,返回結果包括:number、boolean、string、object、undefined、function等6種數據類型。
- typeof null會返回object,因爲特殊值null被認爲是一個空的對象引用
2.instanceof
- 判斷對象和構造函數在原型鏈上是否有關係,如果有關係,返回真,否則返回假
- 使用new實例的方式可以判斷,使用字面量的方式無法判斷。
3.constructor
- constructor 在其對應對象的原型下面,是自動生成的。當我們寫一個構造函數的時候,程序會自動添加:構造函數名.prototype.constructor = 構造函數名
- undefined和null是不能夠判斷出類型的,並且會報錯。因爲null和undefined是無效的對象,因此是不會有constructor存在的ndefined和null是不能夠判斷出類型的,並且會報錯。因爲null和undefined是無效的對象,因此是不會有constructor存在的
- 使用constructor是不保險的,因爲constructor屬性是可以被修改的,會導致檢測出的結果不正確
4.Object.prototype.toString.call()
- 不管是什麼類型的,Object.prototype.toString.call();都可以判斷出其具體的類型。