最近心血来潮要开始玩博客了,刚好也在看数组这块内容,第一篇就只好拿数组开刀了,自己总结的,有什么不对的地方还请批评指正,还有什么没写到的方面也可以提出来我进行完善,谢谢~~

   首先,大概说说数组的基本用法。

   数组,即Array类型,是开发中最常用的类型之一,javascript中的数组和其他语言最大的区别就是每一项可以保存任何类型的数据,而且数组的大小是可以动态调整的,有点绕?看看代码吧

   1.数组的创建:

var arr=new Array(20);
var arr1=["小伞",1,true,undefined,[2,"王"],""]

第一行用数组构造法创建了一个length值为20的数组,第二行用数组字面量表示法创建了一个多种数据类型并存的数组。

第一行的方法有点小坑,括号里指定的是数组的长度,而不是数组第一个元素是20 ,要想创建有一个元素是20的这么一个数组,还是用字面量法创建吧。

还有一个小坑,看代码

var arr=[1,2,];
var arr1=[,,,,,]

第一行这句会在IE8以及之前版本中创建一个值分别为1,2,undefined的数组,其他浏览器会产生一个两项分别是1,2的数组

第二行同样的可能会在不同浏览器上包含5项或者6项。(IE9以上修复了这个问题,但还是不推荐这种写法)

   2.数组元素的基本操作

js的数组非常的灵活,拥有很多数组元素操作的方法,但也有一些小坑,比如:

var arr=[];
arr[0]=1;arr[1]=2;arr.push(3);  //arr=[1,2,3]arr[arr.length]=4;    //arr=[1,2,3,4]arr.unshift(0);  //arr=[0,1,2,3,4];delect arr[2];   //arr=[0,1,undefined,3,4]arr[0]=undefined   //arr=[undefined,1,undefined,3,4]

push()方法会给数组最后边添加一个元素,得到的值可以看注释,^_^

也可以直接手动在数组下标拓展以为,如第三行,其实就相当于push(4);

那如果想在数组元素最前边添加呢,别急,有unshift()方法。

与此对应的有删除元素的pop()方法和shift()方法,分别和push(),unshift()对应,就不再赘述了。

delect 运算符对数组的操作不会删除掉数组的元素,可以说是用undefined来占个位子,和直接赋值是一样的。

   3.稀疏数组

稀疏数组是指数组的下标并不是从0开始,一般数组的长度要比元素的个数要多:

var arr1=[undefined];
var arr2=new Array(1);0 in arr1;        //true
0 in arr2;        //falsevar arr3=new Array(100);
arr3[99]="赋值";99 in arr3;        //true
98 in arr3;        //false

arr1中是因为数组第1列是有值的,虽然是undefined,arr2只是指定了数组长度,第1列还是没有值,所以用in语句会返回false。arr3中给第第100个元素赋值后检测是有值的,对其他列的key是没有影响的,所以还是返回了false。

  下次来写数组的一些操作方法。

  javascript数组浅谈2 http://www.cnblogs.com/wangxiaosan/p/5504687.html


转载于:https://www.cnblogs.com/wangxiaosan/p/5501908.html

javascript数组浅谈1相关推荐

  1. java get请求 数组,浅谈vue中get请求解决传输数据是数组格式的问题

    qs的stringify接收2个参数,第一个参数是需要序列化的对象,第二个参数是转化格式,一般默认格式是给出明确的索引,如:arr[0]=1&arr[1]=2 //indices是index的 ...

  2. java中定义byte数组,浅谈java的byte数组的不同写法

    (由于篇幅原因阐述的不够详细科学,不喜勿喷). 经常看到java中对byte数组的不同定义,粗略整理的一下: 一个字节(byte)=8位(bit),"byte数组"里面全部是&qu ...

  3. linux脚本遍历数组,浅谈shell 遍历数组的几种方法

    背景 某天遇到一个问题,现象如下:第一种遍历正常打印元素,然而第二种遍历只会打印一个元素! #!/bin/bash # $1 代表文件目录 # 执行 eg: # sh your_shell.sh /u ...

  4. 【JavaScript】——浅谈js(JavaScript)

    [前言] 学习javascript的知识,原来在浏览网页时炫酷的动态效果就是js在幕后操作,js在Web开发中扮演着重要的角色,被广泛应用到各个领域:地图搜索,,用户注册.验证,网上购物.Web聊天- ...

  5. JavaScript 框架浅谈

    web前端培训分享JavaScript框架,JavaScript 是开发领域的重要技术之一.根据 Statista 的报告,JavaScript 是 2019年开发人员使用的最流行的编程语言,在202 ...

  6. js跟php增加删除信息,浅谈JavaScript数组的添加和删除

    本文给大家浅谈一下JavaScript数组的添加和删除 ,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 1.添加 (1)最简单的方法:为新索引赋值 (2)使用push()和unsh ...

  7. java的byte php_java_浅谈java的byte数组的不同写法,(由于篇幅原因阐述的不够详 - phpStudy...

    浅谈java的byte数组的不同写法 (由于篇幅原因阐述的不够详细科学,不喜勿喷). 经常看到java中对byte数组的不同定义,粗略整理的一下: 一个字节(byte)=8位(bit),"b ...

  8. 浅谈 JavaScript 编程语言的编码规范--转载

    原文:http://www.ibm.com/developerworks/cn/web/1008_wangdd_jscodingrule/ 对于熟悉 C/C++ 或 Java 语言的工程师来说,Jav ...

  9. JavaScript 中的 require / exports、import / export、浅谈JavaScript、ES5、ES6

    Node.js 的基础教学 之 exports 和 module.exports:https://zhuanlan.zhihu.com/p/82057593 浅谈 JavaScript.ES5.ES6 ...

最新文章

  1. 266. Palindrome Permutation
  2. 浏览器是如何解析html的?
  3. kafka php 0.8,php5.6 centos7 kafka0.8.1
  4. 压缩软件自动化测试,FOR…IN…ZIP循环——自动化测试精解(14)
  5. C++ 虚函数 纯虚函数 抽象类 代码示例
  6. python os.forkos.wait
  7. 如何使用sklearn进行数据挖掘?
  8. 韩顺平 java笔记 第3讲 运算符 流程控制
  9. python中的特殊函数__call__
  10. 打车界的“拼多多”?
  11. JS设为首页、添加到收藏夹
  12. 来给PPT添加一个进度条和页码吧
  13. ButterWorth滤波器学习(参照博主链接——https://blog.csdn.net/cjsh_123456/article/details/79342300)
  14. 迅雷总提示版权什么的。。
  15. 扫盲区分IaaS和PaaS
  16. 单片机笔记(江科大自化协)
  17. 华为安全 HCIP722笔记
  18. 内存测试内存检测工具
  19. 机器人开发--pgv 视觉引导(Position Guided Vision)
  20. 《神经科学:探索脑》学习笔记(第12章 躯体感觉系统)

热门文章

  1. pca 主成分分析_六分钟的主成分分析(PCA)的直观说明。
  2. notepad++与ISE/Vivado关联
  3. 申请表怎么填才能提高信用卡额度?
  4. excel 公式 单引号 concat_从Excel的数据类型说Python
  5. python比较列表所有项是否有相同的部分_检查列表中的所有元素是否相同
  6. java面试换背景颜色_实习|渣二本Java菜鸡0 Offer的春招血泪史,一定要主动去找实习呀!
  7. html5手机电商网页设计代码_Html5网站制作,干货!20个视觉体验和内容俱佳的优秀网页设计...
  8. html表ge模板_精选甘特图模板,丰富又好用
  9. python压缩文件不带根路径_python 压缩文件(解决压缩路径问题)
  10. python面向对象之类的成员