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

 

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

 

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

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

 

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

库是平等栽多少结构,也就是是流行添加的起极其早于移除(后进先出)。而栈中项的插入和移除,只来在一个岗位–栈的顶部。

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

push()
方法可于数组的最终添加一个要多独因素,并返回新的长短。

pop()
方法用于去并回数组的结尾一个元素ECMAScript。

例子:

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]