JavaScript的數據類型: (參考 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Data_structures)
原始類型(6種):Number、String、Boolean、Null、Undefined、Symbol(in es6) 和Object
使用:
JavaScript 是一種弱類型語言,可以在聲明時不用聲明類型,在程序運行過程中類型會被自動確定,可以同一個變量保存不同類型的數據。
這也導致了一個問題,在判斷數據類型時會出現類型不精確的情況,導致判斷出現問題。
判斷數據類型:
1.typeof 操作符返回一個字符串,表示未經計算的操作數的類型 在使用typeof 判斷數據類型時,常常返回以下字符串(隱式聲明,不使用new 聲明) Undefined 'undefined' Null 'object' Number 'number' String 'string' Boolean 'boolean' Symbol 'symbol' 函數對象 'function' 宿主對象(由JS環境提供) Implementation-dependent 任何其他對象 'object' 注意: 在某些顯示聲明情況下,通常返回 'object' 例如: new String('asd')、 new Number('1')、new Boolean('0') 在ie6、7、8上,很多宿主對象 返回對象而不是函數 例如 alert等
判斷對象類型:
在使用JavaScript時,有時需要判斷一個對象的精准類型,例如 Array,在判斷Array等是否為指定數據類型時, 使用typeof 無法進行判斷,這時可以 使用 Object.prototype.toString.call(target) 返回 '[object Array]'
判斷是否為某個構造函數的實例:
vm instanceof constructor