函数介绍
概念
将任意代码封装到起,需爱用的时候进行调用执行
语法
//函数定义
function 函数名() {
函数体 //封装的代码
}
//函数调用语句:
函数名 ()
函数参数
形参:
- 就是在函数内部可以使用的变量,在函数外部不能使用
- 行参的值是在函数调用的时候由实参决定的
实参:
-
在函数调用的时候给形参赋值的也就是说,在调用的时候是给一个实际的内容的 多个参数的时候,是按照顺序一一对应的
//形参 function 函数名(形参1,形参2...) { 函数体 } //实参 函数名(实参1,实参2...)
参数个数
形参比实参少
因为是按照顺序一一对应的,行参少就会拿不到实参给的值,所以在函数内部就没有办法用到这个值
function fn(num1, num2) {
//函数内部可以使用 num1 和 num2
}
//本次调用的时候,传递了两个实参,100 200 和 300
// 100 对应了numl, 200 对应了num2, 300 没有对应的变量
//所以在函数内部就没有办法依靠变量来使用 300 这个值
fn(100, 200, 300)
实参比形参少
因为是按照顺序一一对应的,所以多出来的行参就是没有值的,就是undefined
function fn(num1, num2, num3) {
//函数内部可以使用numl num2 和num3
}
//本次调用的时候,传递了两个实参,100 和 200
//就分别对应了numl 和num2
//而num3没有实参和其对应,那么num3的值就是undefined
fn(100,200)
参数默认值
function 函数名(形参1, 形参2) {
形参1 = 形参1 || 默认值1
形参2 = 形参2 || 默认值2
函数体
}
函数名(实参1)
函数名()
函数返回值
return返回的意思,其实就是给函数一个返回值和终断函数
return 语句返回函数调用处
=> return 值
=> return
中断函数
当我开始执行函数以后,函数内部的代码就会从上到下的依次执行,必须要等到函数内的代码执行完毕,而return关键字就是可以在函数中间的位置停掉,让后面的代码不在继续执行
function fn() {
console.1og(1)
console.1og(2)
console.1og(3)
//写了return 以后,后面的4和5就不会继续执行了
return
console.1og(4)
console.1og(5)
}
//函数调用
fn()
返回值
return 在函数体中,终止函数体代码向下执行,返回函数调用处
function fn() {
//执行代码
return 100
}
//此时,fn() 这个表达式执行完毕之后就有结果出现了
console.1og(fn()) // 100
我们可以在函数内部使用return关键词,把任何内容当作这个函数运行后的结果
函数类型
-
无参无返回值
function 函数() { 函数体 } 函数() -
有参无返回值
function 函数(形参1,形参2) { 函数体 } 函数(实参1, 实参2) -
无参有返回值
function 函数() { 函数体 return值 var变量 = 函数() -
有参有返回值
function 函数(形参1, 形参2) { 函数体 return值 } var变量 = 函数(实参1, 实参2)
函数定义方式
声明式函数定义:function fn() { }
函数表达式也称财值式函教定义:var fn = function() { }
预解析
- js代码执行解析过程
需要解析的内容有两个:
- 声明式函数
- 在内存中先声明有一个变量名是函数名,并且这个名字代表的内容是一个函数
- var关键字
- 在内存中先声明有一个变量名
- 预解析,如果遇到同名变量和函数,函数优先
- if条件不管成不成立语句块都会解析
- return语句后代码不执行,但会进行预解析