首页 > 技术文章 > JavaScript高级程序设计(二)

aegisada 2014-10-21 22:11 原文

一、函数

1.1 JS中函数无重载,同一作用域下定义两个函数,而不会引发错误,但真正调用的是后面定义的函数。例如:

function doAdd(iNum){
  alert(iNum+100);
}

function doAdd(iNum){
  alert(iNum+10);
}

doAdd(10);//结果为20,第二个函数覆盖了第一个

1.2 arguments 对象,arguments.length返回传递给函数参数的个数。我们可以用arguments模拟函数重载。

function doAdd(){
  if(arguments.length==1){
    alert(arguments[0]+10);
} else if(arguments.length==2){
    alert(arguments[0]+arguments[1]);
}
}

doAdd(10);// 输出20
doAdd(30,10)//输出40

1.3  Function类直接创建

var function_name=new Function(argument1,argument2,……,function_body)
//每一个argument都是参数,最后一个是执行主体代码。这些参数都必须是字符串。
var odAdd=new Function("iNum",,"alert(iNum+100)");

 1.4  对象类的函数

  slice()和String类的一样。

var aStr=["aa","bb","cc","dd"]; var sStr=aStr.slice(1);//当只有一个参数时返回从该位置到数组结尾处所有项。bb,cc,dd

var aStr=["aa","bb","cc","dd"]; var sStr=aStr.slice(0,3);//当只有两个参数时返回他们之间的所有项,不包括第二个位置项。aa,bb,cc

push()//存入数组尾部

pop()//删除最后一个,返回它作为函数值。

shift()//删除第一个项,返回它作为函数值。

unshift()//把一个项放在第一个位置,其余项向后移动一个位置。

sort()//升序排列

1.5 数组迭代方法

every():对数组中每一项运行给定函数,如该函数对每一项都返回true,则返回true;

var numbers = [1,2,3,4,5,6];
var everyResult=numbers.every(function(item,index,array){
return (item >2)});
alert(everyResult);//false

some():对数组中每一项运行给定函数,如该函数对有一项返回true,则返回true;

var numbers = [1,2,3,4,5,6];
var someResult=numbers.some(function(item,index,array){
return (item >2)});
alert(someResult);//true

filter():它利用指定的函数确定是否在返回的数组中包括某一项。

                        

 

推荐阅读