一、创建数组
1. 空数组:var obj = new Array( );
2. 指定长度数组:var obj = new Array(size);
3. 指定元素数组:var obj = new Array(元素1, 元素2, ...)
4. 单维数组:var obj = [元素, 元素2, 元素3, ...]
5. 多维数组:var obj = new Array([数组序列1], [数组序列2], [数组序列N]);
二、基本操作
1. 增加数组:使用"[ ]"运算符指定一个新下标
2. 删除数组:delete 数组名[下标]
3. 遍历数组:for (var 数组元素变量 in 数组)
三、数组属性
1. constructor:引用数组对象的构造函数
2. length:返回数组的长度
3. prototype:通过增加属性和方法扩展数组定义
四、数组方法
1. concat( ):连接两个或更多数组,并返回结果。
- 该方法不会改变现在的数组,而仅仅返回被连接数组的副本。
- arrayObject.concat(arrayX, arrayX,...)。arrayX可以是具体的值,也可以是数组对象。
2. join( ):把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
- arrayObject.join(separator)。可选,指定要使用的分隔符,省略参数则使用逗号
3. push( ):向数组的末尾添加一个或更多元素,并返回新的长度
- 改变数组的长度 arrayObject.push(newelement1,newelement2,....,newelementX)
4. pop( ):删除并返回数组的最后一个元素
- pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值 arrayObject.pop( );
5. unshift:向数组的开头添加一个或更多元素,并返回新的长度。
- unshift() 方法将把它的参数插入 arrayObject 的头部,并将已经存在的元素顺次地移到较高的下标处,以便留出空间。该方法的第一个参数将成为数组的新元素 0,如果还有第二个参数,它将成为新的元素 1,以此类推。
- arrayObject.unshift(newelement1,newelement2,....,newelementX)
6. shift:删除并返回数组的第一个元素
- 如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值。请注意,该方法不创建新数组,而是直接修改原有的 arrayObject。
- arrayObject.shift()
7. reverse( ):颠倒数组中元素的顺序。
- 该方法会改变原来的数组,而不会创建新的数组
- arrayObject.reverse()
8. sort( ):对数组的元素进行排序
- 对数组的引用。请注意,数组在原数组上进行排序,不生成副本。
- arrayObject.sort(sortby)。sortby可选,规定排序顺序,必须是函数
- function sortby(a, b) { return b - a; //a - b表示升序,b - a表示降序。 }
9. splice( ):方法向/从数组中添加/删除项目,然后返回被删除的项目。
- 该方法会改变原始数组
- 如果仅仅添加元素,返回值为空数组;如果删除元素,返回包含删除元素的数组
- arrayObject.splice(index,howmany,item1,.....,itemX)。index,必需,整数,起始位置,使用负数可以从数组结尾处规定位置;howmany,必需。要删除的项目数量。设置为0,则不会删除项目。itmeX,可选。向数组添加的新项目。
10. slice( ):可以从已有的数组中返回规定的元素
- arrayObject.slice(start,end)。start,必需,如果负数表示从结尾开始。end可选,规定从何处结束,如果没有该参数,那么切分从start到数组的结束所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
- 该方法并不会修改数组,而是返回一个子数组,包含start 到end (不包含该元素)的arrayObject 中的元素。
11. toSource( ):返回该对象的源代码
- 只有 Gecko 核心的浏览器(比如 Firefox)支持该方法,也就是说 IE、Safari、Chrome、Opera 等浏览器均不支持该方法。
- object.toSource()
12. toString() 方法可把数组转换为字符串,并返回结果。
- arrayObject.toString(); arrayObject 的字符串表示。
- 返回值与没有参数的 join() 方法返回的字符串相同。
13. toLocaleString( ):把数组转换为本地数组,并返回结果。
- toLocaleString 方法返回一个 String 对象,这个对象中包含了用当前区域设置的默认格式表示的日期
14. valueof( ):返回Array 对象的原始值
toString( )、toLocalString( )、valueOf( )三个方法的区别:
Array、Boolean、Date、Number等对象都具有 toString()、toLocaleString()、valueOf()三个方法的区别
var obj1 = [1, 2, 3];
var obj2 = [4, 5, 6];
var obj3 = [obj1, obj2];
console.log(typeof obj3.valueOf()); //object
console.log(typeof obj3.toString()); //string
console.log(typeof obj3.toLocaleString()); //string
Array.toString() Array.toLocaleString() Array.valueOf(),输出结果toString和toLocaleString输出内容是一样的,且都为字符串形式.而valueOf输出的是这个对象本身的值.
而toString( ) 和toLocaleString( ) 方法的区别
var date = new Date();
console.log(date.valueof()); //1532756801154
console.log(date.toString()); //Sat Jul 28 2018 13:46:41 GMT+0800 (中国标准时间)
console.log(date.toLocaleString()); //2018/7/28 下午1:46:41
console.log(typeof date.valueOf()); // number
console.log(typeof date.toString()); //string
console.log(typeof date.toLocaleString()); //string
toString()方法获取的是String(传统字符串),而toLocaleString()方法获取的是LocaleString(本地环境字符串)。所以使用toString( )是保险的,返回唯一值的方法,不会因为本地环境的改变而发生改变。
表达式 | valueOf() 的值 | toString( ) 的值 | toLocaleString( ) 的值 | |
Array | var array = new Array(‘1’,'2','3'); | 返回数组本身。 返回:Array[3] | 把数组转换为字符串,并返回结果,每一项以逗号分割。 返回:“1,2,3” | 把数组转换为本地数组,并返回结果。 返回:“1,2,3” |
Boolean | var boolean = new Boolean(); | 返回 Boolean 对象的原始值。 | 据原始布尔值或者 booleanObject 对象的值返回字符串 “true” 或”false”。默认为”false” | Boolean对象没有toLocalString()方法。但是在Boolean对象上使用这个方法也不会报错 |
Date | var date = new Date(): | 返回 Date 对象的原始值,以毫秒表示 | 把 Date 对象转换为字符串,并返回结果。使用本地时间表示 | 可根据本地时间把 Date 对象转换为字符串,并返回结果,返回的字符串根据本地规则格式化 |
Math | var pi = Math.PI; | 返回 Math 对象的原始值 | string类型的值 | string类型的值 |
Number | var number = new Number(1234); | 返回一个 Number 对象的基本数字值 | 把数字转换为字符串,使用指定的基数 | 把数字转换为字符串,使用本地数字格式顺序 |
String | var string = new String("abc"); | 返回某个字符串对象的原始值 | 返回字符串 | 返回字符串 |