一、函数
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():它利用指定的函数确定是否在返回的数组中包括某一项。