首先创建数组

     var empty = [];//创建一个空的数组;
var diffType = [1,'a',2.3,{},[4,5],,];//创建一个包含不同类型的数组
var undef = [,,]//创建一个空元素数组,注意这里数组的长度是2,不是3.JavaScript数组允许最后多一个逗号。但是在IE678长度是3.
var instance = new Array();//当然也可以用Array类创建一个数组,效果和[]一样。

读写数组元素

     var b = [1,null,2,,3,undefined,6];//定义一个数组
b[0];//读数组的第一个元素
b[0] = 100;//写数组的第一个元素,数组的下标可以是一个表达式
b[12.34] = 1234;//数组的下标可以不是一个整形数字,此时会将12.34作为一个属性名称,为b定义一个属性
b["12"] = 12;//当数组的下标是一个可以直接转化成整形数字的字符串时,就像当于写b[12] = 12,数组的length就成13了
b["13.00"] = 13;//当不能直接转化成正整数时,依然作为属性名处理
b[14.00] = 14;//可以直接转化成正整数,就相当于b[14] = 14,此时b.length = 15;
    var x = [,,,];//在IE9,10长度为3,IE8极更早的版本长度为4
var y = new Array(3);//注意:数组x, y 是有区别的。x,y都表示定义了一个长度为3的数组,但是x的三个元素值都为undefined,y的三个元素都没有值。但是表现是一样的。
console.log(0 in x);//false
console.log(0 in y);//false

数组的一些方法

push(p1,p2,...)在数组的末端添加元素,可以一次添加多个

pop()移除并返回最后一个数组元素

delete()将数组中的制定元素置为undefined,并不影响length属性。

join(p)将数组转化为字符串,用p分割。注意该方法会将递归内嵌的数组元素,一次调用toString()方法。

 var a = [1,null,[10,12,[23,25]],2,,3,undefined,6];
console.log(a);//[1, null, Array[3], 2, , 3, undefined, 6]
console.log(a.join());//"1,,10,12,23,25,2,,3,,6"
4 console.log(a.join(", "));//"1, , 10,12,23,25, 2, , 3, , 6"

reverse()反转数组

sort(f(a,b))如果没有参数,就按照字符顺序排序。undefined元素会排在最后。f是一个函数,用于定义排序规则。f返回值<=0,a在b前,否则b在a前。

concat()返回组合后的数组,但是并不改变原有数组。调用方法如下

 var b = [1,2,3];
console.log(b.concat(100,101));//[1, 2, 3, 100, 101]
console.log(b.concat([100,101]));//[1, 2, 3, 100, 101]
console.log(b.concat([100,101],[102,103]));//[1, 2, 3, 100, 101, 102, 103]
console.log(b.concat([100,101,[103,104]]));//[1, 2, 3, 100, 101, Array[2]]。并不会改变数组内的数组

slice(startIndex [,endIndex])返回指定区间(左闭右开)的元素。

 var b = [1,2,3,4,5];
console.log(b.slice(0,3));//[1, 2, 3]
console.log(b.slice(3));//[4, 5]
console.log(b.slice(7));//[]
console.log(b.slice(-3,-2));//[3]

splice(startIndex [,lenth,p1,p2,p3,...]返回被截取的元素,原来的数组将被改变。

 var c = [1,2,3,4,5,6,7,8];
console.log(c.splice(4));//[5, 6, 7, 8]
console.log(c.toString());//[1, 2, 3, 4]
console.log(c.splice(3,1,5,6,7,8));//[4]
console.log(c);//[1, 2, 3, 5, 6, 7, 8]

shift()删除数组的第一个元素。

unshift(p1,p2,...)将参数添加在数组的开头。

toString()将数组中的每一个元素调用toString方法。

JavaScript Array 的学习的更多相关文章

  1. javascript Array Methods(学习笔记)

    ECMAScript 5 定义了9个新的数组方法,分别为: 1.forEach();  2.map();  3.filter();  4.every();  5.some();  6.reduce() ...

  2. javascript Array 方法学习

    原生对象Array学习 Array.from()   从类似数组的对象或可迭代的对象返回一个数组 参数列表 arraylike  类似数组的对象或者可以迭代的对象 mapfn(可选)   对对象遍历映 ...

  3. Javascript提升阶段学习

    JavaScript1:javascript简介 JavaScript是一种脚本语言,能实现网页内容的交互显示,当用户在客户端显示该网页时,浏览器就会执行JavaScript程序,用户通过交互的操作来 ...

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

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

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

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

  6. 【学习笔记】JavaScript的基础学习

    [学习笔记]JavaScript的基础学习 一 变量 1 变量命名规则 Camel 标记法 首字母是小写的,接下来的字母都以大写字符开头.例如: var myTestValue = 0, mySeco ...

  7. javascript的ES6学习总结(第三部分)

    1.ES6中的面向对象的类 1.1.定义类 在ES5中,我们写一个类,通常是这么写的 function Person(name,age){ this.name = name; this.age = a ...

  8. 7 种 Javascript 常用设计模式学习笔记

    7 种 Javascript 常用设计模式学习笔记 由于 JS 或者前端的场景限制,并不是 23 种设计模式都常用. 有的是没有使用场景,有的模式使用场景非常少,所以只是列举 7 个常见的模式 本文的 ...

  9. JavaScript 权威指南-学习笔记(一)

    本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! ## JavaScript 权威指南-学 ...

随机推荐

  1. UVALive 2957 Bring Them There

    Bring Them There Time Limit: 3000ms Memory Limit: 131072KB This problem will be judged on UVALive. O ...

  2. Leetcode 306.累加数

    累加数 累加数是一个字符串,组成它的数字可以形成累加序列. 一个有效的累加序列必须至少包含 3 个数.除了最开始的两个数以外,字符串中的其他数都等于它之前两个数相加的和. 给定一个只包含数字 '0'- ...

  3. [Vijos1512] SuperBrother打鼹鼠 (二维树状数组)

    传送门 直接搞就行. 注意下表re从零开始,而树状数组搞不了0,所以统一增加一个偏移量1. (话说数据随机是什么鬼?) # include <iostream> # include < ...

  4. nginx反向代理ajax,解决跨域问题

    server { listen 8000; server_name somename alias another.alias; location /a { add_header 'Access-Con ...

  5. zookeeper学习0

    参考文献: 5分钟让你了解 ZooKeeper 的功能和原理 Zookeeper专题——1.分布式事务(a概述) Zookeeper专题——2.分布式锁-基于Zookeeper的分布式锁

  6. 《TCP/IP详解卷1:协议》——第4章 ARP:地址解析协议(转载)

    章节回顾: 1.引言 当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是根据48 bit的以太网地址来确定目的接口的.设备驱动程序从不检查IP数据报中的目的IP地址.地址解析为这两种不同 ...

  7. 【转载】ubuntu16.04 无线/Wifi 上网速度慢的解决方法

    原文链接:http://tieba.baidu.com/p/4737599703[侵删] 一直以为是域名解析的问题,可也觉得不像.今天在百度搜索“ubuntu16.04域名解析慢”的时候无意中看到了h ...

  8. Django学习之 - 基础视图函数

    视图:Views 获取用户请求的方法: 1: request.GET 2: request.POST 3: request.FILES # checkbox 等多选文件 4:request.POST. ...

  9. uva 10559

    记忆话搜索 DP 看了网上题解  状态方程真是巧妙 orz #include <cstdio> #include <cstdlib> #include <cmath> ...

  10. java序列化,看这篇就够了

    一.序列化的含义.意义及使用场景二.序列化实现的方式1.Serializable1.1 普通序列化1.2 成员是引用的序列化1.3 同一对象序列化多次的机制1.4 java序列化算法潜在的问题1.5 ...