这里把符合以下条件的对象称为伪数组:

  1、具有length属性

  2、按索引方式存储数据

  3、不具有数组的push.pop等方法

  伪数组(类数组):无法直接调用数组方法或期望length属性有什么特殊的行为,不具有数组的push.pop等方法,但仍可以对真正数据遍历方法来遍历它们。典型的是函数document.childNodes之类的,它们返回的NodeList对象都属于伪数组。

  可以使用以下函数将伪数组转化为真正的Array对象(兼容问题处理)。

  function makeArray( c ){

    try{

    return Array.prototype.slice.call( c );

  }catch( e ){

    var ret =[   ] ,   i    ,len=c.length;

    for(i=0;i<len;i++){

      ret[ i ]  =  ( c[ i ] );

}

    return  ret;

}

}

在javascript中什么是伪数组,如何将伪数组转化为标准数组?的更多相关文章

  1. javascript中的所有内容都是一个对象:字符串、值、数组、函数…

    javascript中的所有内容都是一个对象:字符串.值.数组.函数…此外,javascript允许自定义对象.javascript对象JavaScript提供多个内置对象,如字符串.日期.数组等.对 ...

  2. 在Javascript中什么是伪数组?如何将伪数组转化为标准数组?

    答案: 伪数组(类数组):无法直接调用数组方法或期望length属性有什么特殊的行为,但仍可以对真正数组遍历方法来遍历它们.典型的是函数的argument参数,还有像调用getElementsByTa ...

  3. javascript 伪数组和转化为标准数组

    1: 什么是伪数组 伪数组是一个含有length属性的json对象, 它是按照索引的方式存储数据, 它并不具有数组的一些方法,只能能通过Array.prototype.slice转换为真正的数组,并且 ...

  4. javascript 伪数组与标准数组

    伪数组 1. 是一个对象 2. 必须有length 属性,length 值是number 类型 3. 如果这个对象的length 不为0,那么必须要有按照下标存储的数据 标准数组 判断数据是否是标准数 ...

  5. 深入浅出 妙用Javascript中apply、call、bind

    apply.call 在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向. Jav ...

  6. 【优雅代码】深入浅出 妙用Javascript中apply、call、bind

    这篇文章实在是很难下笔,因为网上相关文章不胜枚举. 巧合的是前些天看到阮老师的一篇文章的一句话: “对我来说,博客首先是一种知识管理工具,其次才是传播工具.我的技术文章,主要用来整理我还不懂的知识.我 ...

  7. (转)深入浅出 妙用Javascript中apply、call、bind

    原文连接 深入浅出 妙用Javascript中apply.call.bind 网上文章虽多,大多复制粘贴,且晦涩难懂,我希望能够通过这篇文章,能够清晰的提升对apply.call.bind的认识,并且 ...

  8. Javascript中apply、call、bind

    网上文章虽多,大多复制粘贴,且晦涩难懂,我希望能够通过这篇文章,能够清晰的提升对apply.call.bind的认识,并且列出一些它们的妙用加深记忆. apply.call 在 javascript ...

  9. 妙用Javascript中apply、call、bind

    对apply.call.bind的认识,并且列出一些它们的妙用加深记忆.   apply.call 在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(cont ...

随机推荐

  1. 网页简单布局之结构与表现原则(HTML/CSS)

    结构 样式 行为真正的分离 前端初级人员会在页面上单纯的用各个div把相关内容独立开: 前端中级人员明白相关属性的设置会给元素带来什么改变,从而减少div的书写: 前端高级人员会以及其简单的和稳定的方 ...

  2. .net core系列之《新一代的配置系统Configuration在支持多数据源,热更新,层级化方面代码快速实践》

    在我们之前.Net Framework的项目中,配置文件是WebConfig或AppcConfig文件,而当我们想要添加我们自定义的节点时,还需要在这个文件中的section中定义我们自定义的节点,这 ...

  3. 沉淀,再出发:PHP的简单使用

    沉淀,再出发:PHP的简单使用 一.前言 关于PHP,笔者在本科的时候就听到了太多太多,可惜虽然看了很多的教材,听到了无数遍,也没有系统性的整理过和学习过这方面的知识,这点无论什么时候想起来都是一种遗 ...

  4. 解决python3 UnicodeDecodeError: 'gbk' codec can't decode byte

    本来想写个html来玩玩,结果读取文件得时候就BUG了.... 以下代码读取html中无中文没有问题. def handle_request(client): buf = client.recv(10 ...

  5. mongodb的安装和启动

    1.在mongodb的官网上下载安装包 https://www.mongodb.com/download-center 选择对应你的系统的安装包下载 如果下载不了 可以使用这个链接下载http://d ...

  6. java构造方法-this关键字的用法

    public class constructor { public static void main(String[] args) { // TODO Auto-generated method st ...

  7. IOS Charles(代理服务器软件,可以用来拦截网络请求)

    什么是Charles Charles是一款代理服务器软件,可以用来拦截网络请求 利用Charles能得知大部分公司app的数据来源和数据格式 下载地址:http://www.charlesproxy. ...

  8. 【转】用JS创建json数据,并且可以动态往json数据里面添加新值,也可以修改值。

    原文地址:http://blog.csdn.net/panlingfan/article/details/45562893/ 函数不需要 return,因为 json 对象会被函数直接修改. var ...

  9. python,dict的setdefault方法

    @dict的setdefault方法 先看看文档中的解释 setdefault(...)    D.setdefault(k[,d]) -> D.get(k,d), also set D[k]= ...

  10. WEB安全 ACCESS 注入、盲注脚本

    http://www.xxx.cn/cp.asp?classid=3http://www.xxx.cn/cp.asp?classid=3 and //有拦截关键字http://www.xxx.cn/c ...