无参函数
function showHello(){
alert("Hello!");
}
有参函数
function showStr(str){
alert(str);
}
匿名函数
btn.onclick = function(){
alert("单击了按钮");
}
var show = function () {
alert(a);
};
show();
/*匿名函数的自调用*/
(function () {
alert("我是匿名函数");
})();
!function () {
alert("我也是匿名函数");
}();
(function () {
alert("我是匿名函数");
}());
arguments
在实参个数不确定的时候,可以省略形参,在函数体内部使用arguments,arguments是一个数组,里面包含了函数调用的所有实参。
function calc() {
if(arguments.length == 2){
return arguments[0] + arguments[1];
} else if(arguments.length == 3) {
switch (arguments[2]){
case "+":
return arguments[0] + arguments[1];
case "-":
return arguments[0] - arguments[1];
case "*":
return arguments[0] * arguments[1];
case "/":
return arguments[1] != 0 ? arguments[0] / arguments[1] : "被除数不能为0";
case "%":
return arguments[1] != 0 ? arguments[0] % arguments[1] : "模不能为0";
case "^":
return Math.pow(arguments[0],arguments[1]);
default:
return "运算符未识别";
}
}
}
alert(calc(1,6,"/"));
arguments.callee
arguments.callee属性指向函数本身。可以用于递归(匿名函数递归只能用callee)。
//函数递归,计算1+2+3+...+10
var sum =0;
function calc(num) {
sum += num;
num++;
if(num >10){
alert(sum);
return;
}
arguments.callee(num);//等效calc(num);
}
calc(1);
this
this关键字指向调用它的对象。
<button name="btn" onclick="alert(this.name)">按钮</button>