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

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

   数组,即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; //false var 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


javascript数组浅谈1的更多相关文章

  1. javascript数组浅谈2

    上次说了数组元素的增删,的这次说说数组的一些操作方法 join()方法: ,,] arr.join("_") //1_2_3 join方法会返回一个由数组中每个值的字符串形式拼接而 ...

  2. javascript数组浅谈3

    前两节说了数组最基本的创建,队列方法,排序和一些操作方法,这节说说迭代和归并方法. every()方法 & some()方法 这两个方法会对数组中的每一项运行给定函数,然后返回一个布尔值,理解 ...

  3. JavaScript之浅谈内存空间

    JavaScript之浅谈内存空间 JavaScipt 内存自动回收机制 在JavaScript中,最独特的一个特点就是拥有自动的垃圾回收机制(周期性执行),这也就意味者,前端开发人员能够专注于业余, ...

  4. 【javascript】浅谈javaScript的深拷贝

        前言: 最开始意识到深拷贝的重要性是在我使用redux的时候(react + redux), redux的机制要求在reducer中必须返回一个新的对象,而不能对原来的对象做改动,事实上,当时 ...

  5. JavaScript闭包浅谈

    ------------------- 作者:willingtolove: 本文链接:http://www.cnblogs.com/willingtolove/p/4745889.html 1. 变量 ...

  6. 也谈面试必备问题之 JavaScript 数组去重

    Why underscore (觉得这部分眼熟的可以直接跳到下一段了...) 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. ...

  7. Js之浅谈dom操作

    JavaScript之浅谈dom操作 1.理解dom: DOM(Document Object Model ,文档对象模型)一种独立于语言,用于操作xml,html文档的应用编程接口. 怎么说,我从两 ...

  8. 浅谈JavaScript中的闭包

    浅谈JavaScript中的闭包 在JavaScript中,闭包是指这样一个函数:它有权访问另一个函数作用域中的变量. 创建一个闭包的常用的方式:在一个函数内部创建另一个函数. 比如: functio ...

  9. JavaScript中toStirng()与Object.prototype.toString.call()方法浅谈

    toStirng()与Object.prototype.toString.call()方法浅谈 一.toString()是一个怎样的方法?它是能将某一个值转化为字符串的方法.然而它是如何将一个值从一种 ...

随机推荐

  1. iOS开发- Xcode 7添加pch文件

    1.打开你的Xcode工程. 在Supporting Files目录下,选择 File > New > File > iOS > Other > PCH File 然后点 ...

  2. 提高Java代码质量:使用枚举定义常量(转)

    一.分析  常量的声明是每一个项目中不可或缺的,在Java1.5之前,我们只有两种方式的声明:类常量和接口常量.不过,在1.5版之后有了改进,即新增了一种常量声明方式,枚举常量.代码如下: enum ...

  3. js深拷贝和浅拷贝

    一.数组的深浅拷贝 在使用JavaScript对数组进行操作的时候,我们经常需要将数组进行备份,事实证明如果只是简单的将它赋予其他变量,那么我们只要更改其中的任何一个,然后其他的也会跟着改变,这就导致 ...

  4. Quiz(贪心,快速幂乘)

    C. Quiz time limit per test 1 second memory limit per test 256 megabytes input standard input output ...

  5. Java知多少(105)套接字(Socket)

    网络应用模式主要有: 主机/终端模式:集中计算,集中管理: 客户机/服务器(Client/Server,简称C/S)模式:分布计算,分布管理: 浏览器/服务器模式:利用Internet跨平台. www ...

  6. WWDC2015 结束.新一波更新以及bug即将来袭.

    WWDC结束.新一波更新以及bug即将来袭. HTTPS 将成为标准链接. http被报错. GamePlayKit 这是搞那样. 还有ReplayKit  那些什么录像分享什么的还有活路么? Mod ...

  7. Tips3:通过Layer下拉菜单来锁定游戏物体和控制物体的可视化

    通过把不同的游戏物体放在不同的Layer里面能对不同类的游戏物体进行很方便的控制,如果某些游戏物体创建后你不想再改动,如地面 装饰 什么的, 你可以通过点击Layer下拉菜单把它们锁定了 也可以通过控 ...

  8. 将win7电脑无线网变身WiFi热点,让手机、笔记本共享上网

    开启windows 7的隐藏功能:虚拟WiFi和SoftAP(即虚拟无线AP),就可以让电脑变成无线路由器,实现共享上网,节省网费和路由器购买费.宏碁.惠普笔记本和诺基亚N97mini亲测通过. 以操 ...

  9. 使用autotools系列工具自动部署源代码编译安装

    在Linux系统下开发一个较大的项目,完全手动建立Makefile是一件费力而又容易出错的工作.autotools系列工具只需用户输入简单的目标文件.依赖文件.文件目录等就可以比较轻松地生成Makef ...

  10. AFNetworking 原作者都无法解决的问题: 如何使用ip直接访问https网站?

    背景 最近App似乎有报异常是DNS无法解析,尝试解决此问题.搜集到的资料很少,甚至连AFN原作者都判定这可能是一个无解的问题,参见: https://github.com/AFNetworking/ ...