js伪数组

  • 一、伪数组的特点
  • 二、伪数组
    • 常见的伪数组
    • 伪数组转真
  • 三、最后

一、伪数组的特点

  1. 具有lenght属性
  2. 可以使用下标访问数据
  3. 不具有数组的方法,比如push( ),pop( )等

二、伪数组

本质上是一个对象,有index、length等属性,但是不能使用数组的方法,如foreach( )、filter( )、map( )、find( )、reduce()等方法,但是能够通过遍历数组的方式进行访问(for 循环)

常见的伪数组

  1. 字符串之类的
  2. 函数的arguments(参数)、
  3. 通过document.getElementByTagName( )等获得的元素集合
  4. key为0,1,2数字且有length的模糊性的对象
 //1.字符串let str = 'hello';console.log(str.length);console.log(str[1]);//2.function的arguments对象let fun = function(a,b,c){//arguments是一个对象console.log(arguments);//Arguments { 0: 1, 1: 2, 2: "123", … }console.log(a+b);//3}fun(1,2,'123');//3.含有length的"假"对象let obj = {length:2}console.log(obj.length);//有lengthconsole.log(obj[1]);//undefinedobj[1] = 'hello';//这样就有obj[1];console.log(obj);//{ 1: "hello", length: 2 }

伪数组转真

  1. ES6中将伪数组转换为真数组:var arr = Array.from(arguments);即可使用数组的方法

  2. ES5中将伪数组转换为真数组:var arr=Array.prototype.slice.call(arguments) 或 Array.prototype.slice.apply(arguments);

  3. 使用[].slice.call(arguments) 或 [].slice.apply(arguments)

  4. var arr = Array.of(arguments)

  5. var arr = new Array(arguments)

    注意:是返回一个新的数组
    
//例
let obj = {length:2}var arr = new Array(obj);var arr1 = Array.from(obj);var arr3 = Array.prototype.slice.call(obj);var arr4 = Array.prototype.slice.apply(obj)console.log(arr1);console.log(arr3);console.log(arr4);

三、最后

如若文章有误,作者虚心请教,谢谢阅读

[04]Web前端进阶—JS伪数组相关推荐

  1. html获取数组的前三个元素,web前端:js 获取数组最后一个元素

    Javascript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在html(标 ...

  2. Web前端-Vue.js必备框架(一)

    Web前端-Vue.js必备框架(一) <!DOCTYPE html> <html lang="en"> <head><meta char ...

  3. web前端进阶<7>:3d图像翻转效果

    这几天又闲着无聊,自己学的东西又有一点不牢固了,需要写一个小程序来巩固一下,相信大家也时有同感吧!那么这一期就给大家带来一个炫酷的相册3d翻转效果,如果搭上炫酷的文字和动画那肯定是高端.霸气上档次的: ...

  4. 好程序员web前端分享js剪切板Clipboard.js 使用

    好程序员web前端分享js剪切板Clipboard.js 使用,clipboard.js是一个用来设置剪切板的库,小巧无依赖,但用法有点诡异,必须依赖一个DOM元素. 必须要与一个DOM元素相关联,并 ...

  5. 好程序员web前端分享JS引擎的执行机制

    好程序员web前端分享JS引擎的执行机制,请先着重牢记两点!JS是单线程语言. JS的EventLoop是JS的执行机制.深入了解JS的执行,就等于深入了解JS里的eventloop. 1.灵魂三问: ...

  6. Web前端,JS基础之ATM取款机案例

    前言 持续学习总结输出中,今天分享的是Web前端,JS基础之ATM取款机案例 需求 用户在ATM取款时可以选择存钱.取钱.查看余额和退出功能 分析 1.循环的时候,需要反复提示输入框,所以提示框写要到 ...

  7. Web前端-Vue.js必备框架(二)

    Web前端-Vue.js必备框架(二) vue调式工具vue-devtools 过滤器:vue.js允许你自定义过滤器,可被用作一些常见的文本格式化. mustache插值和v-bind表达式. vu ...

  8. Web前端进阶之JavaScript模块化编程知识

    JavaScript是前端三要素之一,也是很多初学Web前端的人遭遇的第一条拦路虎.很多同学表示JavaScript涵盖的知识点太多太复杂.应用也是五花八门完全摸不着头脑.但只要我们一点一点由基础到进 ...

  9. web前端之js快速入门(ECMAscript)

    javascript:首先和java没有任何关系,蹭热度.... 静态网页组成:结构(html).样式(css).动作(javascript 简称 js). 详细教程地址:菜鸟教程 - 学的不仅是技术 ...

最新文章

  1. yii2-按需加载并管理CSS样式/JS脚本
  2. Python基础学习-Python中最常见括号()、[]、{}的区别 2015-08-13 07:54 by xuxiaoxiaoxiaolu, 1138 阅读, 0 评论, 收藏, 编辑 Pytho
  3. springboot创建多个对象
  4. Web安全之拖放劫持
  5. 工作流添加跟踪后,实例一启动就会自动关闭
  6. python datasets 下载_frds:金融学术研究数据的Python库
  7. java rector_Java IO的Reactor模式
  8. AtCoder Regular Contest 076E Coneected?
  9. 在VIM中使用GDB调试 – 使用pyclewn
  10. c# 使用NPOI按模板导出excel
  11. 句法结构可视化工具(成分句法)
  12. 阿里 P7 到底是怎样的水平?
  13. AD7705和压力传感器的计算
  14. 贪心法--->1.会议安排问题
  15. 这知道这个错误是咋回事啊?
  16. 小米4C官方/第三方ROM下载
  17. 美团、抖音、淘宝,为什么App们爱上“群聊”?
  18. 优化产品交互逻辑来提升产品性能
  19. 【超详细】SpringBoot与Shiro整合-权限管理实战实操(附源码地址)
  20. Linux管线命令 - cut,grep,sort,uniq,wc,tee,tr,col,join,paste,expand,split,xargs

热门文章

  1. 43套高质量PPT模板—创意风格主题
  2. (Hadoop、HBase、Kafka)中,Zookeeper都作为核心组件使用
  3. 实战生成对抗网络[1]:简介
  4. Windows bat 编程基本语法
  5. 洛谷1262 间谍网络 tarjan缩点
  6. 咋把计算机程序固定到任务栏中,win10我的电脑固定到任务栏如何操作_win10怎么把我的电脑放到任务栏...
  7. 2k的地址范围 计算机组成原理,计算机组成原理课后习题
  8. 打开Office软件时的错误-----隐含模块中的编译错误:autoexecnew
  9. linux 使用scp命令,scp命令详解(全)
  10. Pythton学习笔记1