js判斷物件型別的兩種方法

2021-08-19 10:41:55 字數 1993 閱讀 8293

在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這個型別,就導致我們無法區分出多種不同型別的物件 在函式體內使...