引用类型
创建Object实例:
①使用new操作符后跟Object构造函数
②使用对象字面量表示法
var person= {
name: "Nicholas";
age:29;
};
使用逗号来分割不同的属性,最后一个属性后不能加逗号。属性名可以使用字符串。若为数值属性名会自动转换为字符串。如果留空花括号,则可以定义只包含默认属性和方法的对象。
访问对象属性时都是点表示法,在JavaScript也可以使用方括号表示法来访问对象的属性。在使用方括号表示法时,应该将要访问的属性以字符串的形式放在方括号中。方括号的主要优点是可以通过变量来访问属性。
eg: alert(person["name"]);
Array类型:
创建数组的方式:
①使用Array构造函数
var color=new Array();
var color=new Array(3);
var color=new Array{"red","blue","yellow"};
可以省略new操作符
②使用数组字面量表示法
var color=["red","blue","green"];
var color=[];
数组的length属性不是只读的。因此通过设置设个属性,可以从属的末尾移除项或向数组中添加新项。
检测数组:
instanceof操作符假定的是单一的全局执行环境。如果网页包含多个框架,那实际上就存在两个以上不同的全局执行环境,从而存在两个以上不同版本的Array构造函数。为解决这个问题,新增Array.isArray()方法。这个方法的目的是最终确定某个值到底是不是数组,而不管是在哪个全局环境中创建的。
if(Array.isArray(value)) {
}
转换方法:
由于alert()要接受字符串参数,所以它会在后台调用toString()方法,由此会得到与直接调用toString()方法相同的结果。
数组继承的toLocaleString()、toString()、和valueOf()方法,在默认情况下都会以逗号分阁的字符串形式返回数组项。而使用join()方法,则可以通过使用不同的分隔符来构建这个字符串。join()方法只接收一个参数,即用作分隔符的字符串,然后返回包含所有数组项的字符串。如果不给join()方法传入任何值,或者给它传入undefined,则使用逗号作为分隔符。
alert(colors.join("||"));
栈方法:
ECMAScript为数组专门提供了push()和pop()方法,以便实现类似栈的行为。
push():可以接受任意参量的参数,把它们逐个添加到数组末尾,并返回修改后的数组的长度。
pop():从数组末尾移除最后一项,减少数组的length值,然后返回移除的项。
队列方法:
队列数据结构的访问方法为先进先出。队列在列表的末端添加项,从列表的前端移除项。
shift():它能够移除数组中的第一个项并返回该项,同时将数组长度减1。
unshift():在数组前端添加任一个项并返回新数组的长度。
重排序方法:
reverse():反转数据项的顺序
sort():按升序排列数据项,调用每个数组项的toString()转型方法,然后比较得到的字符串,以确定法如何排序。即使数组中的每一项都是数值,sort()方法比较的也是字符串。
操作方法:
concat()返回改变的数组,原数组不变;
slice()返回改变的数组,原数组不变;
splice()返回删除的向,原数组改变
concat():基于当前数组中的所有项创建一个新数组。先创建当前数组的一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组。在没有给concat()传递参数的情况下,它只是复制当前数组并返回副本。参数为一或多个数组,将这些数组中的每一项都添加到结果数组中。如果传递的值不是数组,这些值就会被简单的添加到结果数组的末尾。原来的数组仍保持不变。
slice():能够基于当前数组中的一或多个项创建一个新数组。在只有一个参数时,返回从该参数指定位置开始到当前数组末尾的所有项。如果有两个参数,该方法返回起始和结束位置之间的项,但不包括结束位置的项。slice()方法不会影响原始数组。
如果参数中有一个是负数,则用数组长度加上该数来确定相应的位置。如果结束位置小于起始位置,则返回空数组。
splice():
位置方法:
indexOf():从数组的开头(位置0)开始向后查找
lastIndexOf():从数组的末尾开始向前查找
两个方法都返回要查找的项在数组中的位置,或者在没找到的情况下返回-1,要求查找的项必须严格相等。
迭代方法:
缩小方法:
迭代数组的所有项,然后构建一个最终返回的值。
reduce():从第一项开始,逐个遍历到最后
reduceRight():从最后一项开始,向前遍历到第一项。
© 完全感觉Dreamer | Powered by LOFTER