js基础研究第四天

7.7.1 join ()方法

方法 Array.join()可以把一个数组的所有元素都转化成字符串,然后把他们连接起来。可以指定一个可选的字符串来分隔结果字符串中的元素。结果没有指定分隔字符串,就使用逗号分隔元素。

var a = {1,2,3};//用这三个元素创建一个新数组

var s = a.join();//s=="1,2,3"

如果指定一个分隔符、其生成的结果稍有不同

s=a.join(",");//s=="1, 2, 3"

注意,逗号后面有一个空格。

方法和String.split()方法相反。

7.7.2 reverse()方法

方法Array.reverse()将颠倒数组元素的顺序并返回颠倒后的数组。它在原数组上执行这一操作,也就是说,并不是对创建一个重排元素的新数组,而是在已经存在的元素数组中对数组元素进行重排。

7.7.3 sort()方法

Array.sort()是在原数组上对数组元素进行排序,返回排序后的属组。如果调用sort()时不传递给它参数,那么它将按照字母顺序对数组元素进行排序(如果必要的话,可以暂时将元素转换成字符串以执行比较嘈杂

var a = [33,4,111,222]

a.sort(); //1111,222,33,4

a.sort(function(a,b){

   return a-b;//4,33,222,111

});

7.7.4 concat()方法

方法Array.concat()方法能创建返回一个数组,这个数组包含了调用concat()原始数组的元素,其后跟随的是concat()内的参数;如果其中有参数是数组,那么它将被展开,但要注意concat()方法并不能递归的展开一个元素为数组的数组。

var a = [1,2,3];

a.concat(4,5)// [1,2,3,4,5]

a.concat([4,5])//[1,2,3,4,5]

a.concat([4,5],[6,7])// [1,2,3,4,5,6,7]

a.concat(4,[5,[6,7]]) //[1,2,3,4,5,[6,7]]

7.7.7 push()方法和pop()方法

 push()和pop()方法使我们可以像使用栈那样来使用数组。方法push()可以将一个或多个新元素附件到数组的尾部,然后返回数组的新长度。方法pop恰恰相反.FILO

 var stack = [];

stack.push(1,2); //stack:[1,2] return 2

stack.pop();       //stack:[1] return 2

stack.push(3);    //stack:[1,3]

stack.push([4,5])//stack: [1,[4,5]] return 2

7.7.8 unshift()方法和shift()方法

 unshift()和shift()方法的行为和push()与pop()非常相似,只不过他们是在数组的首部添加数据。

 var a = [];

 a.unshift(1);  //a[1]  return :1

 a.unshift(22); //a[22,1] return 2

 a.shift(); //a[1] return 22

7.7.10 数组的其他方法

 String.indexOf()

 forEach()它为数组的每个元素调用一个指定的函数;

第8章 函数

8.2.2 可变长度的参数列表:Arguments 对象

 在一个函数体内,标识符arguments具有特殊含义。Arguments对象是一个类似数组的对象,可以按照数目来获取传递的参数值.

function f(x,y,z){

  if(arguments.length !=3){

     throw new Error("function f called with " + arguments.length +"arguments,but it expects 3 arguments.");

}

}

arguments 对象还为javascript函数开发了一项重要的可能性,即可以编写函数使之能够使用任意数目的实际参数。

max()方法说明了着一定,可以参阅Math.max()

 function max(/* ...*/){

   for(var i=0;i<arguments.length;i++){

     if(arguments[i]>m) m = arguments[i];

        return m;

}

}

var largest = max(1,10,100,2,3);

8.2.4参数类型

javascript是宽松类型的,方法参数没有声明类型,并且对传递给函数的值夜没有执行类型检查。可以通过为函数参数选择描述性强的名字,并且在注释中包括参数类型,从而让代码具有自我说明的能力

function max(/* number...*/){ /*code here */}

8.6.4 方法apply()和call()

 ECMAScript 规范给所有的函数定义了两个方法call()和apply()。使用这两个方法可以像调用其他对象的方法一样调用函数,call()和apply() 的第一个参数都是要调用的函数的对象,在函数体内这一个参数是关键字this的值。call()的剩余参数是传入给药调用的函数的值。例如把两个数字传递给函数f(),并将它作为对象的o的方法调用,可以是使用一下代码

f.call(o,1,2);

等价于:

o.m=f;

o.m(1,2);

delete o.m;

apply()方法和call()方法相似,只不过要传入的函数的参数是由数组指定的

 f.apply(o,[1,2]);

 例如要找到个数字数组中最大的数字,可以使用apply()方法吧数组元素传递给Math.max()方法

var biggest = Math.max.apply(null,array_of_numbers);

猜你喜欢

转载自guobin6125.iteye.com/blog/1458893