JavaScript(七)

引用类型

创建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