JavaScript高级程序设计–对象,数组(栈方法,队列方法,重排序方法,迭代艺术)

1.行使对象字面量定义对象

var
person={};

选用那种形式成立对象时,实际上不会调用Object构造函数。

开发职员更爱好对象字面量的语法。

 

2.有时候须要传递大批量可选参数的景况时,一般来讲使用对象字面量来封装多个可选参数。

 

3.对象属性的点表示法与方括号表示法的区分

(1)效用上:两者没不一致

 

(2)可是方括号的有点是足以经过变量来拜会属性

例如:

    var
person={

   
name:”Nic”

}

点表示法:person.name

方括号表示法:var
prop=“name”;

         
              person[prop]

 

(3)还有三个亮点是:

设若属性名中含有会造成语法错误的字符只怕根本字,保留字时候,使用方括号不会错

例如:person[“first
name”]=”OK”;

 

(4)日常,提议采取点表示法

 

 

4.创办数组的题材

var colors=[1,2,]    //不要这样。这样会创建一个包含2个或3个项的数组
var opy=[,,,,,]    //不要这样。这样会创建一个包含5个或6个项的数组

那是因为IE8及前面包车型地铁本子在促成数组字面量方面有bug

 

动用字面量创造数组时,不会调用Array构造函数。

 

5.假若设置有个别值的目录抢先了数组现有项数。

如:var
color=[1,2,3]

color[3]时,数组会自动扩大到该索引值加1的长度

这时,color[3]的值正是undefined

 

ECMAScript,6.数组的length不只是只读的。通过设置length该属性,可以穿梭向数组末尾添加新项。

 

7.数组转换到字符串 toString() join()

array.toString()    //返回以逗号分隔的字符串
array.valueOf()    //返回的还是数组
array.join(",")    //也可以

 

8.数组的栈方法 push() pop() 

栈是一种数据结构,也正是风靡添加的项最早被移除(后进先出)。而栈中项的插入和移除,只产生在一个职位–栈的顶部。

ECMAScript提供了push()与pop()方法来落实这种栈。

push()
方法可向数组的结尾添加一个或八个要素,并赶回新的尺寸。

pop()
方法用于删除并赶回数组的末段贰个成分。

例子:

var arr=[];
var count=arr.push('a','b');    //count=2
arr.push('c');
var item=arr.pop();    //移除最后一项 c  item=c 并且改变数组长度

 

9.队列方法 shift() unshift() 

队列数据的访问规则是先进先出

ECMAScript提供了shift()来实现。

shift()
方法用于把数组的率先个要素从中间删除,并回到第一个成分的值。

unshift()
方法可向数组的起来添加一个或更加多因素,并重临新的尺寸。

 

10.重排序方法 sort() reverse()

ECMAScript提供了sort()与reverse()来实现。

sort()会调用每种数组项的tostring()方法,相比获得的字符串来排序。

 

 

11.数组的拼接
concat()

concat()
方法用于连接八个或八个数组。

该措施不会转移现有的数组,而单独会回到被连接数组的三个副本。

 

12.slice()
方法可从已有个别数组中回到选定的要素。

 

13.地点方法:indexOf()与lastIndexOf()

 

14.迭代艺术

ECMAScript5概念了下列5种方式,该5种方法都收下多个参数:数组项的值,该项在数组中的地方,数组对象自笔者 
                                      

every(),filter(),forEach(),map(),some()

例子:

var num=[1,2,3,4];

var res=num.every(function(item,index,array){
    return (item>2)
})    //false    必须每一项都大于2,才返回true

var res=num.some(function(item,index,array){
    return (item>2)
})    //true  只要有一个大于2,就返回true

var res=num.filter(function(item,index,array){
    return (item>2)
})    //[3,4]     
var res=num.forEach(function(item,index,array){
    return (item>2)
})    //[1,4,9,16]