JavaScript函数
一、概念
- 通过函数可以封装任意多条语句,而且可以在任何地方、任何时候调用执行
- Javascript函数使用function关键字来声明,后面跟一组参数以及函数体
二、语法
- 函数的定义:
function 函数名(形式参数){函数体}
- 函数的调用:
函数名(参数);
- 示例:
function sayHi(name,message){
alert("Hello "+name+","+message);
}
sayHi("John","how are you?");//"John,how are you?"
三、相关补充
- 函数在定义时不必指定是否返回值
- 位于
return
语句之后的任何代码都永远不会执行 - 一个函数中也可以包含多个
return
语句 return
语句也可以不带有任何返回值。在这种情况下,函数在停止执行后将返回undefined
值。这种方法一般用在需要停止函数执行而又不需要返回值的情况下
function sum(num1,num2){
return num1+num2;
alert("Hello world");//永远不会执行
}
function diff(num1,num2){
if(num1<num2){
return num2-num1;
}else{
reutrn num1-num2;
}
}
function sayHi(name,message){
return;
alert("Hello "+name+","+message);//永远不会执行
}
四、理解参数
- JavaScript不介意传递进来多少个参数,也不在乎传递进来参数的数据类型
- 传递进来的参数个数可以和定义的参数个数不相同
- JavaScript中的参数在内部是用一个数组来表示的。函数接收的始终都是这个数组,不关心数组中包括那些参数
- 实际上,在函数体内可以通过
arguments
对象来访问这个参数数组,从而获取传递给函数的每一个参数 - 命名的参数只提供便利,但不是必须的
arguments
对象可以与命名参数一起使用arguments
的值永远与对应命名参数的值保持同步
function howManyArgs(){
alert(arguments.length);
}
howManyArgs("string",45);//2
howManyArgs();//0
howManyArgs(12);//1
function doAdd(){
if(arguments.lenght==1){
alert(arguments[0]+10);
}else if(arguments.length==2){
alert(arguments[0]+arguments[1]);
}
}
/*非严格模式下。严格模式下,num2的值仍然还是undefined,其次,重写arguments的值会导致语法错误(代码将不会执行)*/
function add(num1,num2){
arguments[1]=10;
alert(arguments[0]+num2);//num2被修改为10
}
五、匿名函数
- 匿名函数就是没有名字的函数
- 匿名函数的调用:
(函数体)(参数);
(function () {
alert("匿名函数()");
})();/
源于整理《JavaScript高级程序设计》