js是弱語言,其資料型別可以自動轉換,因此很多時候在用到資料的時刻不清楚資料的型別到底是哪種,需要進行判斷後,再執行語句。
最新的ecmascript規範定義的資料型別分為兩大類,分別為基本型別和引用型別。
對於資料型別的判斷,有如下的方法:
tostring()方法:tostring()方法是object原型上的方法,呼叫tostring()方法預設返回當前物件的[[class]]屬性,這是乙個內部屬性,格式為[object ***],其中***就是資料型別,x表示大寫字母。
作為目前最有效的判斷資料型別的方法,tostring()方法可以這樣呼叫object.prototype.tostring.call(arg);其中,arg為引數,即要進行型別判斷的變數。
object.prototype.tostring.call('') ; // [object string]
object.prototype.tostring.call(1) ; // [object number]
object.prototype.tostring.call(true) ; // [object boolean]
object.prototype.tostring.call(symbol()); //[object symbol]
object.prototype.tostring.call(undefined) ; // [object undefined]
object.prototype.tostring.call(null) ; // [object null]
object.prototype.tostring.call(new function()) ; // [object function]
object.prototype.tostring.call(new date()) ; // [object date]
object.prototype.tostring.call() ; // [object array]
object.prototype.tostring.call(new regexp()) ; // [object regexp]
object.prototype.tostring.call(new error()) ; // [object error]
object.prototype.tostring.call(document) ; // [object htmldocument]
object.prototype.tostring.call(window) ; //[object global] window 是全域性物件 global 的引用
typeof操作符: 其後接一元表示式,返回結果是number、boolean、symbol、string、object、undefined、function這7中資料型別的一種。在用typeof做判斷時,返回的結果不夠精細,比如typeof null; // object
只返回object型別而不是null型別;
instanceof操作符:這是用來判斷原型與例項關係的操作符。當例項的__proto__屬性指向了某種型別的prototype時,則instanceof返回true,否則返回false;但這裡也存在著返回結構不夠精細的特點。
js資料型別判斷方法
js的資料型別大體上可以分為兩種 原始型別 即基本資料型別 和物件型別 即引用資料型別 而基本資料型別細化可以分為undefined null number boolean string 而js的引用資料型別也就是物件型別object,比如 object array function data等 f...
js資料型別的判斷方法
判斷js中的資料型別有一下幾種方法 typeof instanceof constructor prototype type jquery.type 接下來主要比較一下這幾種方法的異同。var a iamstring.var b 222 var c 1,2,3 var d new date var ...
js 判斷資料型別的封裝方法
除js內建方法外,對於數判斷據型別的實現 返回true false 是否是字串 function isstring value 是否是數字 function isnumber value 是否是布林值 function isboolean value 是否undefined function isu...