在JavaScript中,数组用关键字Array来声明。声明数组的同时还可以指定数组初始元素的大小,也就是数组的长度;下面代码定义了一个数组长度为6的数组;

var beatles=Array(6);

当然在JavaScript里面可以不声明数组的长度,这完全是可以的!下面代码为没有定义长度的数组,理论上你往里面添加多少元素都没问题;

var beatles=Array();

分析以下代码:

var array = Array(2);
array[0] = "H";
array[1] = "E";
array[2] = "L";
array[3] = "L";
array[4] = "O";
alert(array.length);

这段代码定义了一个长度为2的数组,但是实际却给它添加了5个值,超出开始定义的长度,浏览器试运行,输出5,但是js报错uncaught exception: out of memory,超出数组定义的长度;

给数组赋值的方式一共有三种,下面是具体代码:

1.通过数组下标来给数组赋值

var array = Array();
array[0] = "H";
array[1] = "E";
array[2] = "L";
array[3] = "L";
array[4] = "O";

2.在声明数组的同时给数组赋值

var array = Array("H", "E", "L", "L", "O");

3.我们甚至不用明确表明我们是在创建数组,只需用一对双括号把各个初始值的初始值括起来就行了;

var array = ["H", "E", "L", "L", "O"];

Important:数组的元素类型;

1.数组的元素类型不必非得是字符串,可以是数值,可以使bool值;

var array = ["A", false, 12, 1245.1];
for (var i = 0; i < array.length; i++) {
alert(array[i]);
}

依次输出:A,false,12,1245.1;    他们都是不同的数据类型;

2.数组的元素可以是一个变量;

var param = "change";
var array = ["A", false, 12, param];
for (var i = 0; i < array.length; i++) {
alert(array[i]);
}

依次输出:A,false,12,change;  输出param的变量值;

3.数组的元素可以是另一个数组的元素;

var param = "change";
var array = ["A", false, 12, param];
var beatles = ["B", true, 36];
array[0] = beatles[1];
for (var i = 0; i < array.length; i++) {
alert(array[i]);
}

依次输出:true,false,12,change;    这里注意原先的值会被覆盖A被覆盖成true;

4.数组的元素还可以是另一个数组

var param = "change";
var array = ["A", false, 12, param];
var beatles = ["B", true, 36];
array[0] = beatles;
for (var i = 0; i < array.length; i++) {
alert(array[i]);
}

依次输出:"B,true,36",false,12,change;   注意若要输出beatles数组中的某一个元素,代码如下:

alert(array[0][1]);

总结到这,之前所用到的数组都是传统数组,每个元素的下标是一个数字,每次往数组中增加一个元素,下标就加一,如果在填充数据的时候只给出元素的值,这个数组将是一个传统数组,他的各个元素的下标将被自动创建个刷新;

关联数组:根据上面的总结得出,我们可以通过在填充数组时,为每个新元素明确的给出下标来改变这种默认的行为;在为新元素给出下标时,不必局限于使用整数,可以使用字符串,如下代码所示:

var lenovo = Array();
lenovo["name"] = "联想";
lenovo["year"] = "1994";
lenovo["living"] = false;
alert(lenovo.length);

这就是关联数组。由于可以使用字符串来代替数字值下标,因而代码更具可读性,但是这种用法并不是一个好习惯,不推荐使用。在JavaScript中,事实上所有的变量都是某种类型的对象,比如一个布尔值,就是一个Boolean类型的对象,一个数组就是一个Array类型的对象。在上面那段代码中,实际上是给lenove数组对象添加了name,year,living,三个属性;一般情况下,我们不应该修改Array对象的属性;

JavaScript之数组学习的更多相关文章

  1. Javascript经典算法学习1:产生随机数组的辅助类

    辅助类 在几个经典排序算法学习部分,为方便统一测试不同算法,新建了一个辅助类,主要功能为:产生指定长度的随机数组,提供打印输出数组,交换两个元素等功能,代码如下: function ArraySort ...

  2. JavaScript ES6 数组新方法 学习随笔

    JavaScript ES6 数组新方法 学习随笔 新建数组 var arr = [1, 2, 2, 3, 4] includes 方法 includes 查找数组有无该参数 有返回true var ...

  3. 深入浅出的javascript的正则表达式学习教程

    深入浅出的javascript的正则表达式学习教程 阅读目录 了解正则表达式的方法 了解正则中的普通字符 了解正则中的方括号[]的含义 理解javascript中的元字符 RegExp特殊字符中的需要 ...

  4. JS数组学习笔记

    原文:JS数组学习笔记 最近在备课数组,发现很多ES5的方法平时很少用到.细节比较多,自己做了大量例子和整理,希望对大家了解JavaScript中的Array有所帮助. 概念 数组是值的有序集合.每个 ...

  5. javascript的ES6学习总结(第二部分)

    1.数组循环 介绍数组循环之前,先回顾一下ES5数组的循环 (1)数组遍历(代替普通的for):arr.forEach(callback(val,index,arr){todo}) //val是数组的 ...

  6. javascript的ES6学习总结(第一部分)

    ES6(ESNext学习总结——第一部分) ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版. ECMA每年6月份,发布一个版本 201 ...

  7. 总结Javascript中数组各种去重的方法

    相信大家都知道网上关于Javascript中数组去重的方法很多,这篇文章给大家总结Javascript中数组各种去重的方法,相信本文对大家学习和使用Javascript具有一定的参考借鉴价值,有需要的 ...

  8. Javascript 随机数函数 学习之二:产生服从正态分布随机数

    一.为什么需要服从正态分布的随机函数 一般我们经常使用的随机数函数 Math.random() 产生的是服从均匀分布的随机数,能够模拟等概率出现的情况,例如 扔一个骰子,1到6点的概率应该相等,但现实 ...

  9. Javascript获取数组中的最大值和最小值的方法汇总

    比较数组中数值的大小是比较常见的操作,下面同本文给大家分享四种放哪广发获取数组中最大值和最小值,对此感兴趣的朋友一起学习吧   比较数组中数值的大小是比较常见的操作,比较大小的方法有多种,比如可以使用 ...

随机推荐

  1. android4.0 禁止横竖屏切换使用 android:configChanges="orientation|keyboardHidden"无效

    android4.0 禁止横竖屏切换使用 android:configChanges="orientation|keyboardHidden"无效    在之前的版本中都是在Man ...

  2. 公司需求知识自学- Hashtable简单应用

    定义表 Hashtable tblNames = new Hashtable(); 添加key,value键值对 tblNames.Add("A","a"); ...

  3. 关于iOS9中的App Transport Security相关说明及适配(转)

    原文:http://my.oschina.net/vimfung/blog/494687 iOS9中新增App Transport Security(简称ATS)特性, 主要使到原来请求的时候用到的H ...

  4. 怎样在小方框上打对号 小方框内打对勾 word 方框打对勾

    在word中做选择时,非常多人遇到须要在小方框上打对勾而不知怎样做,现将可行的各种方法总结例如以下: 1:直接找到一个做好的,保存为图片,在须要的时候插入它: 2:插入文本框,然后边框选择为实线,在文 ...

  5. C++关注备注部分知识点

    //关注备注部分知识点. #include <iostream> #include <string><span style="white-space:pre&q ...

  6. Maven命令行创建web项目,并部署到jobss当中(解决No plugin found for prefix 'jboss-as' in the current project and in the plugin groups [org.apache.maven.plugins,问题)

    首件创建项目:此处可参照:http://maven.apache.org/guides/mini/guide-webapp.html mvn archetype:generate -DgroupId= ...

  7. BST的删除

    #include<iostream> #include<math.h> #include<stdio.h> #include<stdlib.h> #in ...

  8. myeclipse序列号

    Subscriber:huazai          Subscription Code:uLR8ZC-855550-61565856301609203 Subscriber:feifei       ...

  9. 在不同编程语言中对Unix时间戳进行转换(Unix timestamp)

    最近用到unix时间转换在mysql和.net中的应用.将此资料保存在博客中. 如何在不同编程语言中获取现在的Unix时间戳(Unix timestamp)? Java time JavaScript ...

  10. SharedPreferences最佳实践

    转:http://blog.csdn.net/xushuaic/article/details/24513599 笔记摘要:该文章是我在Android Weekly中看到的,以前也一直用SharedP ...