美文网首页
Array 检测

Array 检测

作者: 匿名信片 | 来源:发表于2017-04-11 19:17 被阅读0次

一般在js里,我们一般使用typeof 、instanceof进行类型检测,例如:检测某个对象是否为数组:

if (value instanceof Array){

// 执行相关的代码

}

但这段代码只在有且只有一个全局执行环境中才成立,在红宝书中对此有这么一段定义:

如果网页中包含多个框架,那实际上就存在两个以上不同的全局执行环境,从而存在两个以上不同版本的Array构造函数。如果你从一个框架向另一个框架传入一个数组,那么传入的数组与在第二个框架中原生创建的数组分别具有各自不同的构造函数

所幸ECMAScript 5 新增了Array.isArray()方法用于数组的检测,

if (Array.isArray(value)){

// 执行数组相关代码

}

但该方法只得到了IE9+、Firefox 4.0+、Safari 5+、Opera 10.5+和 Chrome的支持,对于不知持该方法的浏览器,就要自己手动实现一个isArray(), 实现isArray的方法是使用Object中的toString()方法,返回一个[object NativeConstruectorName]格式的字符串,由于原生数组的构造函数名和全局作用域无关,因此不用担心多个框架问题:

function isArray(value) {

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

}

相关文章

  • Array 检测

    一般在js里,我们一般使用typeof 、instanceof进行类型检测,例如:检测某个对象是否为数组: if ...

  • Javascript数组方法总结

    检测数组 array.isArray() 转换方法 array.toString()array.valueOf()...

  • MSE和RMSE

    rmse = sqrt(mean_squared_error(y_array, y_hat_array))时序检测...

  • Array

    1.检测数组 var instanceof Array Array.isArray(val) 2.转换方法 toS...

  • javascript的数组Array

    创建数组及修改 类型检测 转换方法 Array栈操作 Array队列操作 Array的反转和排序 数组的连接与截取...

  • 数组和字符串方法总结

    一、数组(Array) 1、检测数组:isArray() 在ECMScript5中新增了Array.isArray...

  • php面试基础知识--判断数据类型

    is_array() : bool 检测变量是否是数组 is_float() : bool 检测变量是否是浮点型,...

  • Array.isArray

    Array.isArray用于检测一个对象是否为数组 语法 Array.isArray(obj) 参数 objec...

  • JS常见数组操作补充

    检测数组: -instanceof eg: Var arr = new Array() console.log(a...

  • javascript数组操作汇总

    var colors = new Array('red','blue','black'); //检测是否是数组if...

网友评论

      本文标题:Array 检测

      本文链接:https://www.haomeiwen.com/subject/qwppwttx.html