函数声明
JavaScript中声明函数的方式:(无需声明返回值类型)
function add(i1, i2) {undefined
return i1 + i2; //如果不写return返回的是undefined
}
int add(int i1,int i2)//C#写法
不需要声明返回值类型、参数类型。函数定义以function开头。
var r = add(1, 2);
alert(r);
r = add("你好", "tom");
alert(r);
JavaScript中不像C#中那样要求所有路径都有返回值,没有返回值就是undefined。
易错:自定义函数名不要和js内置、dom内置方法重名,比如selectAll、focus等函数名不要用。//不要与系统函数重名。(在单击事件中调用自己定义的focus方法,有问题。与系统的focus()方法重名了)
arguments对象
JavaScript中没有方法重载。
var x=1;
var y=0;
var z=0;
function add(n){n=n+1;return n}
y=add(x);
function add(n){n=n+3;return n;}
z=add(x);
alert(y+’ ’+z); //执行结果:4 4
结论:同名函数覆盖之前的函数。
动态为方法传递参数,类似于.net中的params关键字作用
<script type="text/javascript">
function myFunc() {
for (var i = 0; i < arguments.length; i++) {
document.write(arguments[i]);
document.write('<br/>');
}
}
myFunc('张三', 18, '李四', 19);
</script>
匿名函数(函数直接量function literal)
三种写法:
第一种:
var f1=function(p1,p2){ return p1+p2; };//将函数赋值给一个变量
alert(f1(1,3));
应用:
///document.getElementById(‘btn’).οnclick=function(){}
第二种(*):
(function(p1,p2){alert(p1+p2);})(20,30);
第三种:(*)
var m1=new Function(“p1”,”p2”,”p3”,”return p1+p2+p3”);
alert(m1(1,2,3));
类似于C#中的匿名函数。
这种匿名函数的用法在jQuery中的非常多。
alert(function(i1, i2) { return i1 + i2; }(10,10));//直接声明一个匿名函数,立即使用。用匿名函数省得定义一个用一次就不用的函数,而且免了命名冲突的问题,js中没有命名空间的概念,因此很容易函数名字冲突。通过例子发现一旦命名冲突以最后声明的为准。尽量减少文件的字节数。
var x=1;
var y=0;
var z=0;
var add=function (n){n=n+1;return n}
y=add(x);
add=function(n){n=n+3;return n;}
z=add(x);
alert(y+’,’+z);//执行结果2,4