形如 :
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 方法返回乙個由指定物件的所有自...