這篇文章主要為大家展示了“JS如何判斷數(shù)組”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“JS如何判斷數(shù)組”這篇文章吧。
網(wǎng)站設(shè)計(jì)、網(wǎng)站制作的開發(fā),更需要了解用戶,從用戶角度來建設(shè)網(wǎng)站,獲得較好的用戶體驗(yàn)。創(chuàng)新互聯(lián)公司多年互聯(lián)網(wǎng)經(jīng)驗(yàn),見的多,溝通容易、能幫助客戶提出的運(yùn)營建議。作為成都一家網(wǎng)絡(luò)公司,打造的就是網(wǎng)站建設(shè)產(chǎn)品直銷的概念。選擇創(chuàng)新互聯(lián)公司,不只是建站,我們把建站作為產(chǎn)品,不斷的更新、完善,讓每位來訪用戶感受到浩方產(chǎn)品的價(jià)值服務(wù)。
typeof運(yùn)算符
typeof會(huì)返回這個(gè)類型的字符串
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ù)組 對(duì)象 null 用typeof返回都是object 這種方法不能識(shí)別出是否為數(shù)組
原型contructor鏈方法
實(shí)例化有一個(gè)contructor屬性 這個(gè)屬性指向生成對(duì)象 數(shù)組的方法
var a = [] console.log(a.__proto__.constructor) //? Array() { [native code] } var b = {} console.log(b.__proto__.constructor) //? Object() { [native code] }
上述看到 數(shù)組是由Array函數(shù)實(shí)例化的 對(duì)象由Object函數(shù)實(shí)例化來得
感覺這種方法是可以了 但是 constructor這個(gè)屬性是可以被改寫的
var a = [] a.__proto__.constructor = Object console.log(a.__proto__.constructor) //? Object() { [native code] }
可以看到 這個(gè)是 變成了數(shù)組判斷成了對(duì)象 所以這個(gè)方法也不是最好的
instanceof
這個(gè)方法是判斷某個(gè)構(gòu)造函數(shù)的prototype屬性所指向的對(duì)象是否在另外一個(gè)要檢測(cè)對(duì)象的原型鏈上
var a = [] console.log(a instanceof Array) //a對(duì)象的原型鏈上能找到Array true console.log(a instanceof Object) //true 原型鏈上也能找到對(duì)象
上述這種也不是特別好 判斷不出是數(shù)組還是對(duì)象
通用的方法 toString
toString() 方法返回放映這個(gè)對(duì)象的字符串
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]
可以看到只有對(duì)象返回對(duì)象類型
返回[object type] type代表對(duì)象的類型
判斷對(duì)象用Object的toString的方法拿過來用
var a =[] Object.prototype.toString.call(a) //[object Array]
這個(gè)對(duì)象 toString方法是可以判斷出是否為數(shù)組
但是這里注意下有個(gè)情況就是對(duì)象原型上toString() 也是可以更改的
Array.isArray(XX)
個(gè)人感覺還是使用通用方法 toString() 方法靠譜
以上是“JS如何判斷數(shù)組”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!