JavaScript判断数组的三种方式对比

arr instanceof Array

全局执行环境不同就会导致结果不一样

instanceof原理:递归的寻找左侧变量的 __proto__,看能不能找到右变量的 prototype

例如index.html给iframe传数组arr过去,在iframe中 arr instanceof Array===false

Object.prototype.toString.call(arr)==='[object Array]'

缺点是toString可以被改写

Object.prototype.toString = ()=>'564566';

Array.isArray(arr)

缺点是兼容性不太好, IE9+ FF4+ Safari5+ Opera10.5+ Chrome

发布了79 篇原创文章 · 获赞 9 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_33807889/article/details/105074561
今日推荐