在js 中 , 有一種判斷資料基本型別的方法 typeof , 只能判斷5中基本型別:即 「number」,」string」,」undefined」,」boolean」,」object」 五種。
用法為:
typeof
1typeof str
console.log(typeof
1) //列印出 number
typeof
'a' == 'string'
//結果為true
可見: typeof 會根據物件型別返回對應的型別字串, 但是有幾個缺點:
對於陣列、函式、物件來說,其關係錯綜複雜,使用 typeof 都會統一返回 「object」 字串,
null也會返回』object』
對nan返回是』number』
即
let a= let a =[1,2], let a = func...
typeof a //這個結果都是object
var obj = null
if (typeof obj === 'object')
var obj = {}
var num = parseint(obj.a)
if (typeof num === 'number')
那麼此時我們有第二個方法可以使用, 是 es3中的 object.prototype.tostring方法,我們可以用object.prototype.tostring.call(obj)檢測物件型別:
console.log(object.prototype
.tostring
.call("jerry"));//[object string]
console.log(object.prototype
.tostring
.call(12));//[object number]
console.log(object.prototype
.tostring
.call(true));//[object boolean]
console.log(object.prototype
.tostring
.call(undefined));//[object undefined]
console.log(object.prototype
.tostring
.call(null));//[object null]
console.log(object.prototype
.tostring
.call());//[object object]
console.log(object.prototype
.tostring
.call(function(){}));//[object function]
console.log(object.prototype
.tostring
.call());//[object array]
console.log(object.prototype
.tostring
.call(new date));//[object date]
console.log(object.prototype
.tostring
.call(/\d/));//[object regexp]
function person(){};
console.log(object.prototype
.tostring
.call(new person));//[object object]
使用方法如下:
判斷是否為函式
function
isfunction
(it)
判斷是否為陣列:
function
isarray
(o)
兩種判斷物件型別的方法
兩種判斷物件型別的方法 1.通過instanceof 缺點 不能準確的判斷該物件是dog的例項,如果該物件是類的子類物件也會返回true 2.物件.getclass getname 獲取物件的例項類名 1 物件.getclass 返回該物件對應的class物件 2 物件.getclass getna...
js中建立多個物件的兩種方法
function createperson name,age,hobby return obj 測試 var p1 createperson 張三 22,踢足球 var p2 createperson 李四 18,打遊戲 p1.say 張三喜歡踢足球 p2.say 李四喜歡打遊戲 console.l...
JS基礎 建立物件的常見的兩種方法
一 工廠方法 function createobject name,age return obj var per createobject 小明 20 使用工廠方法建立的物件,使用的建構函式都是object 所以建立的物件都是object這個型別,就導致我們無法區分出多種不同型別的物件 在函式體內使...