[04]Web前端进阶—JS伪数组
js伪数组
- 一、伪数组的特点
- 二、伪数组
- 常见的伪数组
- 伪数组转真
- 三、最后
一、伪数组的特点
- 具有lenght属性
- 可以使用下标访问数据
- 不具有数组的方法,比如push( ),pop( )等
二、伪数组
本质上是一个对象,有index、length等属性,但是不能使用数组的方法,如foreach( )、filter( )、map( )、find( )、reduce()等方法,但是能够通过遍历数组的方式进行访问(for 循环)
常见的伪数组
- 字符串之类的
- 函数的arguments(参数)、
- 通过document.getElementByTagName( )等获得的元素集合
- 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 }
伪数组转真
ES6中将伪数组转换为真数组:var arr = Array.from(arguments);即可使用数组的方法
ES5中将伪数组转换为真数组:var arr=Array.prototype.slice.call(arguments) 或 Array.prototype.slice.apply(arguments);
使用[].slice.call(arguments) 或 [].slice.apply(arguments)
var arr = Array.of(arguments)
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伪数组相关推荐
- html获取数组的前三个元素,web前端:js 获取数组最后一个元素
Javascript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在html(标 ...
- Web前端-Vue.js必备框架(一)
Web前端-Vue.js必备框架(一) <!DOCTYPE html> <html lang="en"> <head><meta char ...
- web前端进阶<7>:3d图像翻转效果
这几天又闲着无聊,自己学的东西又有一点不牢固了,需要写一个小程序来巩固一下,相信大家也时有同感吧!那么这一期就给大家带来一个炫酷的相册3d翻转效果,如果搭上炫酷的文字和动画那肯定是高端.霸气上档次的: ...
- 好程序员web前端分享js剪切板Clipboard.js 使用
好程序员web前端分享js剪切板Clipboard.js 使用,clipboard.js是一个用来设置剪切板的库,小巧无依赖,但用法有点诡异,必须依赖一个DOM元素. 必须要与一个DOM元素相关联,并 ...
- 好程序员web前端分享JS引擎的执行机制
好程序员web前端分享JS引擎的执行机制,请先着重牢记两点!JS是单线程语言. JS的EventLoop是JS的执行机制.深入了解JS的执行,就等于深入了解JS里的eventloop. 1.灵魂三问: ...
- Web前端,JS基础之ATM取款机案例
前言 持续学习总结输出中,今天分享的是Web前端,JS基础之ATM取款机案例 需求 用户在ATM取款时可以选择存钱.取钱.查看余额和退出功能 分析 1.循环的时候,需要反复提示输入框,所以提示框写要到 ...
- Web前端-Vue.js必备框架(二)
Web前端-Vue.js必备框架(二) vue调式工具vue-devtools 过滤器:vue.js允许你自定义过滤器,可被用作一些常见的文本格式化. mustache插值和v-bind表达式. vu ...
- Web前端进阶之JavaScript模块化编程知识
JavaScript是前端三要素之一,也是很多初学Web前端的人遭遇的第一条拦路虎.很多同学表示JavaScript涵盖的知识点太多太复杂.应用也是五花八门完全摸不着头脑.但只要我们一点一点由基础到进 ...
- web前端之js快速入门(ECMAscript)
javascript:首先和java没有任何关系,蹭热度.... 静态网页组成:结构(html).样式(css).动作(javascript 简称 js). 详细教程地址:菜鸟教程 - 学的不仅是技术 ...
最新文章
- yii2-按需加载并管理CSS样式/JS脚本
- Python基础学习-Python中最常见括号()、[]、{}的区别 2015-08-13 07:54 by xuxiaoxiaoxiaolu, 1138 阅读, 0 评论, 收藏, 编辑 Pytho
- springboot创建多个对象
- Web安全之拖放劫持
- 工作流添加跟踪后,实例一启动就会自动关闭
- python datasets 下载_frds:金融学术研究数据的Python库
- java rector_Java IO的Reactor模式
- AtCoder Regular Contest 076E Coneected?
- 在VIM中使用GDB调试 – 使用pyclewn
- c# 使用NPOI按模板导出excel
- 句法结构可视化工具(成分句法)
- 阿里 P7 到底是怎样的水平?
- AD7705和压力传感器的计算
- 贪心法--->1.会议安排问题
- 这知道这个错误是咋回事啊?
- 小米4C官方/第三方ROM下载
- 美团、抖音、淘宝,为什么App们爱上“群聊”?
- 优化产品交互逻辑来提升产品性能
- 【超详细】SpringBoot与Shiro整合-权限管理实战实操(附源码地址)
- Linux管线命令 - cut,grep,sort,uniq,wc,tee,tr,col,join,paste,expand,split,xargs
热门文章
- 43套高质量PPT模板—创意风格主题
- (Hadoop、HBase、Kafka)中,Zookeeper都作为核心组件使用
- 实战生成对抗网络[1]:简介
- Windows bat 编程基本语法
- 洛谷1262 间谍网络 tarjan缩点
- 咋把计算机程序固定到任务栏中,win10我的电脑固定到任务栏如何操作_win10怎么把我的电脑放到任务栏...
- 2k的地址范围 计算机组成原理,计算机组成原理课后习题
- 打开Office软件时的错误-----隐含模块中的编译错误:autoexecnew
- linux 使用scp命令,scp命令详解(全)
- Pythton学习笔记1