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

首頁 > 編程 > JavaScript > 正文

JS判斷數組那點事

2019-11-19 15:12:18
字體:
來源:轉載
供稿:網友

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

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

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判斷數組那點事,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 公主岭市| 榆林市| 惠来县| 景洪市| 通河县| 汨罗市| 揭东县| 池州市| 桃园市| 呼图壁县| 固原市| 长春市| 平乐县| 南召县| 米林县| 宝山区| 阿拉善右旗| 柘荣县| 台北县| 宾阳县| 讷河市| 象州县| 崇文区| 铜梁县| 探索| 景东| 忻城县| 塔河县| 巴南区| 青铜峡市| 富裕县| 秦皇岛市| 获嘉县| 西昌市| 宕昌县| 屯门区| 聊城市| 高雄市| 东丽区| 长沙县| 台东县|