判斷javascript的物件型別

2021-09-17 04:31:58 字數 3164 閱讀 1206

形如 :

typeof undefined                //undefined 

typeof

'qw'

//string

typeof

1//number

typeof

true

//boolean

typeof

function()

//function

//不區分null、{}、陣列

typeof

null

//object

typeof

//object

typeof

//object

返回型別有:『undefined』 「string」 『number』 『boolean』 『function』 『object』

缺點:對於object型別不能細分是什麼型別 ,比如null、{}、陣列

優點:對undefined的判斷 'undefined』的應用

instanceof用於判斷乙個變數是否某個物件的例項,最終結果是乙個布林值

形如 :

var d =

newstring

('test');

d instanceof

string

===true

;null

instanceof

object

//false

undefined instanceof

object

//false

instanceof

object

//true

instanceof

array

//true

function instanceof

object

//true

function instanceof

function

//true

var a =

'qwqwq'

;a instanceof

string

//false

"awqwqw"

instanceof

string

//false

返回的型別有:string number boolean function object array date

優點:可以區分null和undefined不為object

缺點:區分不清除 陣列,function,和string,number型別必須是new生成的物件,直接量無法判斷。

形如:

var x =

; x.constructor === array;

null

.constructor === object //cannot read property 'constructor' of null

undefined.constructor === undefined //cannot read property 'constructor' of undefined

優點:可以返回繼承的型別

缺點:不能物件的細分,如繼承 必須手動修正,不能驗證null和undefined

object.prototype.tostring.

call([

])//"[object array]"

object.prototype.tostring.

call()

//"[object object]"

object.prototype.tostring.

call

(new

date()

)//"[object date]"

object.prototype.tostring.

call(""

)//"[object string]"

object.prototype.tostring.

call

(null

)//"[object null]"

object.prototype.tostring.

call

(undefined)

//"[object undefined]"

object.prototype.tostring.

call(1

)//"[object number]"

object.prototype.tostring.

call

(function)

//"[object function]"

優點:通用,返回"[objectstring]" 具體object的型別

缺點:不能返回繼承的型別

array.prototype.

isprototypeof([

])//true

array.prototype.

isprototypeof()

//false

object.prototype.

isprototypeof([

])//true

object.prototype.

isprototypeof()

//true

優點:指定判斷陣列型別

缺點:不能辨別陣列,物件,等引用型別,不辨別,基本型別

array.

isarray()

//false

array.

isarray([

])//true

優點:精準的判斷陣列

缺點:只能判斷是否是陣列

判斷JavaScript物件為null或者屬性為空

首先說下null與undefined區別 對已宣告但未初始化的和未宣告的變數執行typeof,都返回 undefined null表示乙個空物件指標,typeof操作會返回 object 一般不顯式的把變數的值設定為undefined,但null相反,對於將要儲存物件的變數,應明確的讓該變數儲存nu...

JavaScript判斷物件是否含有某個屬性

兩種方式,但稍有區別 1,in 運算子1 23 varobj alert name inobj true alert tostring inobj true 可看到無論是name,還是原形鏈上的tostring,都能檢測到返回true。2,hasownproperty 方法1 23 varobj o...

JavaScript判斷物件是否為空

非jquery api。部分方法使用到es6中的api 將 轉成字串型別,然後通過string比較 let obj console.log json.stringify obj expect console trueobject.getownpropertynames 方法返回乙個由指定物件的所有自...