一.Object类型
1.两种定义方式
(1)构造函数法
var person = new Object();
person.name = "Nicholas";
person.age = 29;
(2) 字面量表示法
var person = {
name : "Nicholas",
age : 29
}
或者
var person = {
"name" : "Nicholas",
"age" : 29
}
2.属性表示法
(1)person.name
(2)person["name"]
方括号表示法的好处是可以通过变量来访问属性,例如:
二. Array类型
1.
两种定义方式
var propertyName = "name";
alert(person[propertyName]);
二. Array类型
(1)构造函数法:
var colors = new Array(3);
var names = new Array("Greg","Breg");
(2)数组字面量表示法:
var colors = ["red", "blue", "green"];
var names = [];
(3)
数组的.length属性并不是只读的,通过设置这个属性,可以从数组的末尾移除项或向数组中添加新项。
2.检测数组
(1)varlue instanceof Array
(2)Array.isArray(value),这个方法只适用于IE9+的浏览器
3.转换方法
(1)toString()方法返回由数组元素字符串形式的,一个以逗号分隔的字符串。
4. 栈方法(先进后出)
var colors = ["red", "blue", "green"];
colors.toString(); //red,blue,green
(2)valueOf()返回的还是数组
var colors = ["red", "blue", "green"];
colors.valueOf(); //red,blue,green
(3)join方法,可以使用不同的分隔符来构建这个字符串
var colors = ["red", "blue", "green"];
colors.join("||"); //red||blue||green
4. 栈方法(先进后出)
(1)push()方法可以接受任意数量的参数,把他们逐个添加到数组末尾,并返回修改后数组的长度。
(2)pop()方法则是从数组末尾移除最后一项,减少数组的length,然后返回移除的项。
5.队列方法(先进先出)
(1)shift()能够移除数组中的第一个项并返回改项,同时将数组长度减1.
可以用shift()结合push(),制作队列方法。
(2)unshift()能够在数组前端添加任意个项,并返回新数组的长度。
可以用
unshift
()结合pop(),制作反向队列方法。
6.排序方法
(1)reverse()方法可以反转数组顺序。
(2)sort()方法默认是按照升序排列,比较的方式是把数组元素转换成字符串然后比较排序。
var values = [0,1,5,10,15];
var values.sort(); //0,1,10,15,5
sort()方法可以接受一个比较函数作为参数,比较函数接收两个参数,如果第一个参数应该位于第二个参数之前则返回负数,如果两个参数相等则返回0,如果第一个参数应该位于第二个参数之后则返回正数。(可以理解为当要交换数组元素顺序时返回正数,其他情况不变。)
function compare(value1, value2){
if(value1 < value2){
return -1;
}else if(value1 > value2){
return 1;
}else{
return 0;
}
}
var values = [0,1,5,10,15];
var values.sort(compare); //0,1,5,10,15
7.操作方法
(1)concat()方法没有参数的情况下,只是复制当前数组并返回副本。如果concat()方法的参数是一个或者多个数组,则该方法会将这些数组中的每一项添加到结果数组中。
(2)slice()方法可以接受一个或者两个参数。即返回项的起始和结束位置。
var colors = ["red","green","blue","yellow","purple"];
var colors2 = colors.slice(1); //["green","blue","yellow","purple"];
var colors3 = colors.slice(1,4) //["green","blue","yellow"];
(3)splice()方法返回的值是删除的项组成的数组。
删除:只要指定2个参数,要删除的第一个项的位置和要删除的项数。例如splice(0,2)会删除数组中的前两项;
插入:可以向指定位置插入任意数量的项,只需3个参数,起始位置,0(要删除的项数),要插入的项。如果要插入多个项,可以再传入第4,第5,任意多个项。
替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项目,只需3个参数:起始位置,要删除的项数,要插入的项。例如splice(2,1,"red","green")会删除当前数组位置2的项,然后再从位置2开始插入字符串"red","green"。
8.位置方法(IE9+支持)
(1)indexOf()接收两个参数:要查找的项和(可选的)表示查找起点位置的索引,查找顺序是从数组开头向后查找
(2)lastIndexOf()方法的参数与indexOf()方法相同,知识查找顺序是从数组的末尾开始向前查找。
9.迭代方法(IE9+支持)
5个迭代方法都接受两个参数:要在每一项上运行的函数和(可选的)运行该函数的作用域对象--影响this的值。传入这些方法中的函数接收3个参数:数组项的值,该项在数组中的位置和数组对象本身。
(1)every():对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。
(2)filter():对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组。
(3)forEach():对数组中的每一项运行给定函数。这个方法没有返回值。
(4)map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
(5)some():对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true。
以上方法都不会修改数组中的包含的值。
10.缩小方法(IE9+支持)
(1)reduce()会迭代数组的所有项,然后构建一个最终返回的值。接收两个参数:一个在每一项上调用的函数和(可选的)作为缩小基础的初始值。传入reduce()的函数接收4个参数:前一个值,当前值,项的索引和数组对象。
var values = [1,2,3,4,5];
var sum = values.reduce(function(prev,cur,index,array){
return prev + cur;
});
alert(sum); //15
(2)reduceRight()用法与reduce()一致,只是reduce()方法从数组的第一项开始遍历,reduceRight()是从数组的最后一个开始遍历。
三.Date类型(暂不总结)
四.RegExp类型(暂不总结)
五.Function类型(暂不总结)
六.基本包装类型(暂不总结)
七.单体内置对象(暂不总结)