JS判斷數(shù)組那點事
面試題中有個這樣題目 如何判斷數(shù)組 大家都知道哪些方法
其實有時候 明明知道哪些方法 但在關(guān)鍵時候就是說不上來
typeof運算符
typeof會返回這個類型的字符串
var a = '123'
console.log(typeof(a)) //string
var b = []
console.log(typeof(b)) //object
var c = {}
console.log(typeof(c)) //object
var d = null
console.log(typeof(d)) //object
上述看到 數(shù)組 對象 null 用typeof返回都是object 這種方法不能識別出是否為數(shù)組
原型contructor鏈方法
實例化有一個contructor屬性 這個屬性指向生成對象 數(shù)組的方法
var a = []
console.log(a.__proto__.constructor) //ƒ Array() { [native code] }
var b = {}
console.log(b.__proto__.constructor) //ƒ Object() { [native code] }
上述看到 數(shù)組是由Array函數(shù)實例化的 對象由Object函數(shù)實例化來得
感覺這種方法是可以了 但是 constructor這個屬性是可以被改寫的
var a = []
a.__proto__.constructor = Object
console.log(a.__proto__.constructor) //ƒ Object() { [native code] }
可以看到 這個是 變成了數(shù)組判斷成了對象 所以這個方法也不是最好的
instanceof
這個方法是判斷某個構(gòu)造函數(shù)的prototype屬性所指向的對象是否在另外一個要檢測對象的原型鏈上
var a = [] console.log(a instanceof Array) //a對象的原型鏈上能找到Array true console.log(a instanceof Object) //true 原型鏈上也能找到對象
上述這種也不是特別好 判斷不出是數(shù)組還是對象
通用的方法 toString
toString() 方法返回放映這個對象的字符串
var a= '123'
console.log(a.toString()) //123
var b = [1,2,3]
console.log(b.toSting()) //1,2,3
var c = {}
console.log(c.toString)) //[object Object]
可以看到只有對象返回對象類型
返回[object type] type代表對象的類型
判斷對象用Object的toString的方法拿過來用
var a =[] Object.prototype.toString.call(a) //[object Array]
這個對象 toString方法是可以判斷出是否為數(shù)組
但是這里注意下有個情況就是對象原型上toString() 也是可以更改的
Array.isArray(XX)
個人感覺還是使用通用方法 toString() 方法靠譜
總結(jié)
以上所述是小編給大家介紹的JS判斷數(shù)組那點事,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
textarea 控制輸入字符字節(jié)數(shù)(示例代碼)
本篇文章主要是對textarea 控制輸入字符字節(jié)數(shù)的示例代碼進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-12-12
鼠標(biāo)事件的screenY,pageY,clientY,layerY,offsetY屬性詳解
這篇文章主要介紹了鼠標(biāo)事件的screenY,pageY,clientY,layerY,offsetY屬性詳解,需要的朋友可以參考下2015-03-03
終于解決了IE8不支持?jǐn)?shù)組的indexOf方法
今天,測試報過來一個js bug, 在IE8下有個js錯誤,但是在其它瀏覽器下(Firefox, Chrome, IE9)下面都很正常。后來調(diào)試發(fā)現(xiàn)原因是在IE8下,js數(shù)組沒有indexOf方法。2013-04-04
基于JS實現(xiàn)簡單的隨機抽取幸運員工系統(tǒng)
這篇文章主要為大家詳細介紹了基于HTML+JavaScript實現(xiàn)簡單的隨機抽取幸運員工系統(tǒng),文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下2023-11-11

