1.函数定义
函数定义使用关键字function
函数的特点:可以一次定义多次使用,方便代码管理,便于控制代码的执行时间,可将常用的功能进行封装。
语法:
(1)声明式定义函数
function 函数名(形参){
函数内部执行代码
}
(2)赋值式定义函数
var fn=function(形参){
函数内部执行代码
}
形参:定义函数时接收数据的参数,可有可无,根据自己的需求去定义,多个参数直接用逗号隔开。
案例:
求三个数的最大值
function getMax(a, b, c) {
var max = a
if (b > max) {
max = b
}
if (c > max) {
max = c
}
document.write("最大值"+max)
}
//函数调用,通过函数名加(实参)调用。
getMax(32,23,64)
实参:函数调用时实际传入的参数,和形参一一对应,有形参无实参,默认为undefined,有实参无形参传多少都没用。
2.return语句
return 一般用于函数体内,终止函数体代码执行,一般放在函数体最后一行代码可以和其他逻辑分支语句,循环语句一起使用,用于向函数调用者返回一个值。
案例:
// 求三个数的最大值
function getMax(a, b, c) {
var max = a
if (b > max) {
max = b
}
if (c > max) {
max = c
}
//返回最大值
return max
}
//定义一个变量m接收返回值max
var m = getMax(32, 23, 64)
//打印返回值
document.write("最大值" + m)
返回值:将函数处理后的数据返回到函数名上,便于其他用户调用和使用,return可返回任何值,包含函数,当返回函数时如果需要执行返回的函数,可将返回值当成一个函数名,加一个()即可执行。
3.预解析
(1)把var声明的变量提到前面
(2)把function 定义的函数提到前面
(3)当函数名和变量相同时函数优先,如果执行变量赋值,同名的函数就转为变量
案例:
console.log(num); //undefiend
var num=10
f()//调函数f
console.log(f2); //undefiend
function f(){
console.log(n); //undefiend
var n=20
console.log(n ) //20
}
console.log(num); //10
var f2=function(){
console.log("我是f2")
}
预解析处理后
var num//把var声明的变量提到前面
//把function 定义的函数提到前面
function f(){
var n //把var声明的变量提到前面
console.log(n);
n=20
console.log(n )
}
var f2 //把var声明的变量提到前面,注意(赋值式定义的函数不会提到前面,所以console.log(f2); 为undefined)
console.log(num); //undefiend
num=10
f() //调函数f 控制台输出结果为 undefiend 20 undefiend
console.log(f2); //undefiend
console.log(num); //10
var f2=function(){
console.log("我是f2")
}