var a =[1
,2,3
];
instanceof 操作符和物件的 construct 屬性
var arr =[1
,2,3
,1];
console.
log(arr instanceof
array);
// true
varfun
=function()
;console.
log(fun instanceof
function);
// true
var arr =[1
,2,3
,1];
console.
log(arr.constructor === array)
;// true
varfun
=function()
;console.
log(arr.constructor === function)
;// true
使用原型鏈來判斷
[
].__proto__ === array.prototype // true
varfun
=function()
fun.__proto__ === function.prototype // true
object.prototype.tostring.call()
object.prototype.tostring.
call([
])==='[object array]'
// true
object.prototype.tostring.
call
(function()
)===
'[object function]'
// true
array.isarray()
有相容問題,ie8之前的版本是不支援的。
array.
isarray([
])// true
可以綜合上面的幾種方法,有乙個當前的判斷陣列的最佳寫法:
var arr =[1
,2,3
];var arr2 =
;function
isarrayfn
(value)
else
}console.
log(
isarrayfn
(arr));
// true
console.
log(
isarrayfn
(arr2));
// true
上述**中,為何我們不直接使用原型鏈的方式判斷(相容性好),而是先判斷瀏覽器支不支援array.isarray()這個方法,如果不支援才使用原型鏈的方式呢?我們可以從**執行效率上看,array.isarray()這個方法的執行速度比原型鏈的方式快了近一倍。
判斷乙個物件是陣列還是物件
一 typeof判斷資料型別 判斷陣列跟物件都返回object console.log typeof null object console.log typeof function function console.log typeof 小a string console.log typeof1 n...
Js中如何判斷乙個物件為陣列型別
在說明如何判斷乙個物件為陣列型別前,我們先鞏固下js的資料型別,js一共有六大資料型別 number string object boolean null undefined。js的陣列是無型別的 陣列元素可以是任意型別,並且同乙個陣列中的不同元素也可能有不同的型別。陣列的元素可以是物件或其他陣列,...
如何判斷乙個陣列和物件為空?
陣列一般用陣列的長度可以判斷 arr null arr.length 0如果是物件呢?有如下方法 1.把物件轉化為字串 json.stringify 然後通過判斷長度。let obj let res json.stringify obj console.log res 說明是空物件2.遍歷 let ...