国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JS判斷數組那點事

2024-05-06 15:25:50
字體:
來源:轉載
供稿:網友

面試題中有個這樣題目 如何判斷數組 大家都知道哪些方法

其實有時候 明明知道哪些方法 但在關鍵時候就是說不上來

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

上述看到 數組 對象 null 用typeof返回都是object 這種方法不能識別出是否為數組

原型contructor鏈方法

實例化有一個contructor屬性 這個屬性指向生成對象 數組的方法

 var a = [] console.log(a.__proto__.constructor) //ƒ Array() { [native code] } var b = {} console.log(b.__proto__.constructor) //ƒ Object() { [native code] }

上述看到 數組是由Array函數實例化的 對象由Object函數實例化來得

感覺這種方法是可以了 但是 constructor這個屬性是可以被改寫的

  var a = []  a.__proto__.constructor = Object  console.log(a.__proto__.constructor) //ƒ Object() { [native code] }

可以看到 這個是 變成了數組判斷成了對象 所以這個方法也不是最好的

instanceof

這個方法是判斷某個構造函數的prototype屬性所指向的對象是否在另外一個要檢測對象的原型鏈上

  var a = []  console.log(a instanceof Array) //a對象的原型鏈上能找到Array true  console.log(a instanceof Object) //true 原型鏈上也能找到對象

上述這種也不是特別好 判斷不出是數組還是對象

通用的方法 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方法是可以判斷出是否為數組

但是這里注意下有個情況就是對象原型上toString() 也是可以更改的

Array.isArray(XX)

個人感覺還是使用通用方法 toString() 方法靠譜

總結

以上所述是小編給大家介紹的JS判斷數組那點事,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對錯新站長站網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 拜泉县| 宿迁市| 台南市| 北辰区| 湟源县| 清流县| 滦平县| 松阳县| 安丘市| 高唐县| 永德县| 河北区| 苍梧县| 科技| 迁西县| 彝良县| 吉木乃县| 花垣县| 迭部县| 库车县| 榆社县| 彭泽县| 县级市| 济源市| 通江县| 汝州市| 铜梁县| 乌苏市| 巫山县| 江山市| 萨嘎县| 邯郸市| 肇州县| 确山县| 黑山县| 大石桥市| 丹凤县| 崇州市| 武定县| 石台县| 叶城县|