资讯专栏INFORMATION COLUMN

javascript数组知识基础讲解(上)

cgh1999520 / 1208人阅读

摘要:稀疏数组遍历上面这段代码可以看出,在遍历数组的时候是会跳过这些空白单元,直接找到下标为的值。

js是一门拥有非常强表达能力的语言,当你知道你要做什么的时候,它能帮助你更加出色的完成这件事情。当然,想要成为一名出色的前端工程师,需要的是更多的精力跟学习。所以大家要跟我一起努力哦!

数组基本了解

数组(array),字符串(string),和数字(number)算是一个程序最基本的组成部分,这篇文章着重为大家讲解一下数组的使用,毕竟数组是前端开发经常要接触的东西嘛(小声bb 嘻嘻)

和其他强类型语言不同,在javascript中,数组可以容纳任何类型的值,可以是字符串,可以是数字,可以使对象,也可以是其他的数组(多维数组就是通过这种方式实现的)

1. 数组创建
var a = []; //这是一个没有元素的空数组示例
var a = [1,2,3]; //这是三个元素的数组示例
var b = [1,"2",[3,4]]; //这是包含字符串 数字 嵌套数组的示例

var a = new Array();  //调用构造函数Array()创建数组 调用时没有参数
var b = new Array(3); //调用时有一个数值参数,它指定长度 
var c = new Array(1,2,3); //新创建的数组的元素就会被初始化为这些值,它的 length 字段也会被设置为参数的个数
2. 数组长度

每个数组都有一个length属性,js数组的长度是没有上限的,如果你用大于或者等于当前length的数字来储存一个元素,length值就会增大容纳新元素,不会发生数组越界的错误

//数组在声明之后就可以向其中加入值
var arr = [];
    arr.length  //0
    
    arr[0] = 1;
    arr[1] = "2";
    arr[2] = "3";
    arr.length  //3
    
    arr[100] = true;
    arr.length  //100
3. 稀疏数组(sparse array)

稀数组就是含有空白或单缺单元的数组,数组元素的索引不一定要连续,元素之间可以有空隙

在创建稀疏数组的时候要注意:

var arr = [ ];
    arr[0] = 1;
    //此处不设置arr[1]
    arr[2] = [ 3 ];
    arr.length //3

可以看到, 上面的代码可以正常的运行,这就是一个稀疏数组,其中的 ‘空白单元’ 即没有设置的arr[1]的值 为undefined , 这里的undefined指不存在,但是这与直接设置 arr[1]=undefined 还是有所不同,再举个栗子

var arr1=[undefined,undefined,undefined]
var arr2=new Array(3);
    console.log(arr1)
    console.log(arr2)

在谷歌浏览器上arr1显示的是[undefined,undefined,undefined],而arr2显示的为 [undefined × 3] ,由此可以看出他们是不同的,arr2这里的undefined指不存在。

4. 稀疏数组遍历
var arr = new Array(3);
    arr[50]=1;
    console.log(arr.length ) //51
    console.log(arr[0]) //undefined
    arr.forEach(function(value,index){
        console.log(value);   //1
    }); 

上面这段代码可以看出,在遍历数组的时候js是会跳过这些空白单元,直接找到下标为51的值。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/104618.html

相关文章

  • 前端基础进阶(四):详细图解作用域链与闭包

    摘要:之前一篇文章我们详细说明了变量对象,而这里,我们将详细说明作用域链。而的作用域链,则同时包含了这三个变量对象,所以的执行上下文可如下表示。下图展示了闭包的作用域链。其中为当前的函数调用栈,为当前正在被执行的函数的作用域链,为当前的局部变量。 showImg(https://segmentfault.com/img/remote/1460000008329355);初学JavaScrip...

    aikin 评论0 收藏0
  • 前端空间 - 收藏集 - 掘金

    摘要:封装手写的方笔记使用检测文件前端掘金副标题可以做什么以及使用中会遇到的坑。目的是帮助人们用纯中文指南实现复选框中多选功能前端掘金作者缉熙简介是推出的一个天挑战。 深入理解 JavaScript Errors 和 Stack Traces - 前端 - 掘金译者注:本文作者是著名 JavaScript BDD 测试框架 Chai.js 源码贡献者之一,Chai.js 中会遇到很多异常处理...

    you_De 评论0 收藏0
  • 前端空间 - 收藏集 - 掘金

    摘要:封装手写的方笔记使用检测文件前端掘金副标题可以做什么以及使用中会遇到的坑。目的是帮助人们用纯中文指南实现复选框中多选功能前端掘金作者缉熙简介是推出的一个天挑战。 深入理解 JavaScript Errors 和 Stack Traces - 前端 - 掘金译者注:本文作者是著名 JavaScript BDD 测试框架 Chai.js 源码贡献者之一,Chai.js 中会遇到很多异常处理...

    lwx12525 评论0 收藏0
  • JavasScript重难点知识

    摘要:忍者级别的函数操作对于什么是匿名函数,这里就不做过多介绍了。我们需要知道的是,对于而言,匿名函数是一个很重要且具有逻辑性的特性。通常,匿名函数的使用情况是创建一个供以后使用的函数。 JS 中的递归 递归, 递归基础, 斐波那契数列, 使用递归方式深拷贝, 自定义事件添加 这一次,彻底弄懂 JavaScript 执行机制 本文的目的就是要保证你彻底弄懂javascript的执行机制,如果...

    forsigner 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<