快捷搜索: 王者荣耀 脱发

使用instanceof去检测数组的弊端是什么?

使用instanceof去检测数组的弊端是什么?

一般我们说去检测数组,会使用到

if (value instanceof Array){
          
    
 // 操作数组
}

使用这一方法可能大家很少会注意到会有什么问题。 这也是我看书看到的,所以分享给大家。虽然这很少见到

使用 `instanceof` 的问题是假定只有一个全局执行上下文。如果网页里有多个框架,则可能涉及两
个不同的全局执行上下文,因此就会有两个不同版本的 Array 构造函数。如果要把数组从一个框架传
给另一个框架,则这个数组的构造函数将有别于在第二个框架内本地创建的数组。
为解决这个问题,ECMAScript 提供了 Array.isArray()方法。这个方法的目的就是确定一个值是
否为数组,而不用管它是在哪个全局执行上下文中创建的。来看下面的例子:
if (Array.isArray(value)){
          
    
 // 操作数组
}
经验分享 程序员 微信小程序 职场和发展