1.关于函数
1.1 什么是函数
函数是把实现相同功能的代码放到一个函数体中,如果想实现这个功能时,直接调用这个函数即可。函数是先定义再执行。
1.2 函数的好处
- List item减少了的冗余
- 高内聚,低耦合
2.运用函数
2.1 函数的两种命名方式
2.2.1函数声明
声明式会导致函数提升,function会被解释器优先编译。我们用声明式写函数,可以在任何区域声明,不会影响我们调用。
书写格式:function 函数名(参数){函数体}
- function:关键字
- 函数名:自己定义
- 参数:这儿是形参
- 函数体:函数要执行的代码
// 定义函数
function printsum(a,b){
var sum=a+b;
document.write(sum);
}
// 执行函数
printsum(3,5);
2.2.2函数表达式
函数表达式中的function则不会出现函数提升,是JS解释器逐行解释,如果我们调用函数在函数表达式之前则会调用失败。
书写格式:var 函数名=function(参数){函数体}
var nwsum=function(m,n){
var sum=m+n;
document.write(sum);
}
nwsum(8,9);
2.2.3 函数声明和函数表达式调用的区别
function printsum(a,b){
var sum=a+b;
document.write(sum);
document.write('<hr>')
}
printsum(3,5);
var nwsum=function(m,n){
var sum=m+n;
document.write(sum);
}
nwsum(8,9);
从上述执行效果可以看出,先定义后调用函数,两种方式都可以正确执行,接下来看看先调用再定义函数:
printsum(3,5);
function printsum(a,b){
var sum=a+b;
document.write(sum);
document.write('<hr>')
}
nwsum(8,9);
var nwsum=function(m,n){
var sum=m+n;
document.write(sum);
}
通过图片可以看见如果先调用后定义,那么声明函数的方法没有任何影响,但是函数表达式报错,显示nwsum未定义,因此,一般来说,推荐使用声明函数的方法,如果要使用函数表达式,那么就应该先定义再调用。
2.2 函数的参数
- 形参:我们在定义函数时,在函数名后面的括号里面的是形参,例如:a,b就是形参。形参是局部变量,只存在当前函数的作用域中。
- 实参:调用函数时我们传的参数叫做实参,3和5就是实参。
printsum(3,5);
function printsum(a,b){
var sum=a+b;
}
- 在函数体中声明的变量也是局部变量
- 如果函数设置了形参,但是我们调用函数没有传实参,那么它的默认值是undefined。
- 在函数执行时,会有一个私有作用域产生,函数体里面可以用外面的全局变量,但是外面不能使用函数里面的局部变量。
2.3 函数的return值
- 在函数中return返回函数的值
- return会结束整个程序,return后面的代码不会再运行
看一下例子:
function printsum(a,b){
var sum=a+b;
// return终止后面的的程序了,页面不会输出水平线
return sum;
document.write('<hr>')
}
var a=printsum(3,5);
document.write(a);
我们可以看见位于return后面的水平线并没有在页面中输出,现在我们把return放在水平线之后看下效果:
function printsum(a,b){
var sum=a+b;
// 红色水平线在sum值的上方
document.write('<hr color=red>')
return sum;
}
var a=printsum(3,5);
document.write(a);