Object类型
创建Object实例的方式:
- 方式一:使用new操作符后跟Object构造函数 | 1 2 3 4
 | var obj = new Object(); obj.name = "IsYang"; obj.age = 18
 |  
 
- 方式二:使用对象字面量表示法 | 1 2 3 4
 | var obj = {     name : "IsYang",     age : 18 }
 |  
 
Array类型
创建数组的基本方式:
- 方式一:使用Array构造函数 
- 方式二:使用数组字面法表示法 | 1 2 3 4
 | var arrColor = ["red","blue","green"]; alert(arrColor[0]); 	 arrColor[2] = "black";  	 arrColor[3] = "brown";  	
 |  
 
数组的长度length属性不是只读的,因此,通过设置这个属性,可以从数组的末尾移除项或向数组中添加新项。
| 1 2 3 4 5
 | var arrColor = ["red","blue","green"]; arrColor.length = 2;  alert(arrColor[2]);   arrColor[arrColor.length] = "black";  	
 | 
检测数组
确定某个对象是不是数组
| 1 2 3 4
 | if(value instanceof Array){ 	 }
 | 
| 1 2 3 4
 | if(Array.isArray(value)){ 	 }
 | 
转换方法
数组继承的toLocaleString()、toString()和valueOf()方法,在默认情况下都会以逗号分隔字符串的形式返回数组项。
使用join()方法,则可以使用不同的分隔符来构建这个字符串。
| 1 2
 | var arrColor = ["red","blue","green"]; arrColor.join("||");  
 | 
栈方法
push() 向数组的末尾添加一个或多个元素,并返回新的长度。
pop() 删除数组的最后一个元素并返回删除的元素。
| 1 2 3 4 5 6 7 8 9 10
 | var arrColor = ["red"]; var count = arrColor.push("blue");  var item = arrColor.pop();  alert(item)  alert(arrColor.length) 
 | 
队列方法
shift() 移除数组中的第一项
unshift() 数组前端添加任意个项
| 1 2 3 4 5 6
 | var arrColor = ["red"]; var count = arrColor.unshift("blue");  var item = arrColor.shift();  alert(item)  alert(arrColor.length) 
 | 
重排序方法
reverse() 反转数组项的顺序
| 1 2 3
 | var count = [1,2,3,4,5]; count.reverse(); alert(count); 
 | 
sort() 比较字符串的大小(需要接收一个比较函数作为参数)
比较函数方法一:
| 1 2 3 4 5 6 7 8 9
 | function compare(value1,value2){ 	if(value1 < value2){ 		return -1;  	}else if(value1 > value2){ 		return 1;  	}else{ 		return 0; 	} }
 | 
比较函数方法二:
| 1 2 3
 | function compare(value1,value2){ 	return value2 - value1; }
 | 
接收比较函数
| 1 2 3
 | var count = [0,1,2,6,4]; count.sort(commpare); alert(count); 
 | 
操作方法
concat() 连接两个或更多的数组,并返回结果
| 1 2 3
 | var value = ["Is"]; var value2 = value.concat("Yang",["good","and","nice"]); alert(value2); 
 | 
slice() 基于当前数组中的一或多个项创建一个新数组
语法:slice(起始位置,结束位置)
| 1 2 3
 | var colors = ["red","green","blue","yellow"]; var colors2 = colors.slice(1);  var colors3 = colors.slice(1,3); 
 | 
负数例如:包含5项的数组上, slice(-2,-1)等价于(3,4)
splice()从数组中添加或删除元素
- 删除:splice(起始位置,删除的项数) 
- 插入:splice(起始位置,0(要删除的项数),插入的项) 
- 替换:splice(起始位置,删除的项数,插入的任意数量) 
| 1 2 3 4 5 6 7 8 9 10 11
 | var colors = ["red","green","blue"]; var removed = colors.splice(0,1);  alert(colors);  alert(removed);  removed = colors.splice(1, 0, "yellow", "orange");  alert(colors);  removed = colors.splice(1, 1, "red", "purple");  alert(colors);  alert(removed); 
 | 
位置方法
indexOf() 搜索数组中的元素,并返回它所在的位置。
indexOf() 返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。
接收的两个参数(要查找的项,(可选的)表示查找起点位置的索引)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
 | var numbers = [1,2,3,4,5,4,3,2,1]; alert(numbers.indexOf(4));  alert(numbers.lastIndexOf(4));   alert(numbers.indexOf(4, 4));    alert(numbers.lastIndexOf(4, 4));   var person = {name: "Nicholas"}; var people = [{name: "Nicholas"}]; var morePeople = [person]; alert(people.indexOf(person));  alert(morePeople.indexOf(person));  
 | 
迭代方法
每个方法都接收两个参数:(要在每一项上运行的函数,(可选的)运行该函数的作用域对象–影响this的值);
传入这些方法中的函数会接收三个参数:(数组项的值,该项在数组中的位置,数组对象本身)
- every():对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true
- filter():对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组。
- forEach():对数组中的每一项运行给定函数。该方法没有返回值
- map(): 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
- some():对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
 | var numbers = [1,2,3,4,5,4,3,2,1]; var everyResult = numbers.every(function(item, index, array){ 	return (item > 2); }); alert(everyResult);   var someResult = numbers.some(function(item, index, array){ 	return (item > 2); }); alert(someResult);   var filterResult = numbers.filter(function(item, index, array){ 	return (item > 2); }); alert(filterResult);   var mapResult = numbers.map(function(item, index, array){ 	return item * 2; }); alert(mapResult);   numbers.forEach(function(item, index, array){ 	 });
 | 
归并方法
两个归并数组的方法:reduce() 和 reduceRight(),执行数组中所有值之和的操作。
reduce()方法从数组的第一项开始,逐个遍历到最后。
reduceRight()方法从数组的最后一项开始,向前遍历到第一项。
这两个方法都接收两个参数:(在每一项上调用的函数,(可选的)作为归并基础的初始值)。
传个reduce()和reduceRight()的函数接收4个参数:(前一个值,当前值,项的索引,数组对象)。
第一次迭代发生在数组的第二项上,因此第一个参数是数组的第一项,第二个参数是数组的第二项。
| 1 2 3 4 5 6 7 8 9 10 11 12 13
 | var values = [1,2,3,4,5]; var sum = values.reduce(function(prev,cur,index,array){ 	return prev + cur; }); alert(sum);  var values = [1,2,3,4,5]; var sum = values.reduceRight(function(prev,cur,index,array){ 	return prev + cur; }); alert(sum); 
 |