函数是一个语法,对任意功能的代码进行封装,在需要的时候进行调用,像一个盒子,盒子里面装代码通过盒子名称找到盒子执行里面的代码。
1盒子封装代码,调用盒子执行代码。
语法:
//定义函数
function 函数名(){
封装代码
}
函数名()//函数调用语句
定义一个名为fun的函数
function fun(){
//函数体
console.log("这是我的第一条函数语句")
}
fun()//函数调用语句
console.log('函数调用完成')
封装求两个数最大值 54 67
function getMax(){
var m=54
var n=67
var max=m
if(n>max)
{
max=n
}
console.log('最大值',max)
}
getMax()
//封装判断闰年的函数名为 LeapYear
function leapYear() {
var year = 2202
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 ==0)) {
document.write(year,'是润年')
}
else
document.write(year,'不是润年')
}
leapYear()
函数的参数:
function 函数名( m ){
函数体
}
函数名(100)
//m为形参:定义函数时,在函数名括号中定义的变量称为形参。
100为实参,使用函数调用语句时,调用函数时,传入的实际参数值。
function fun(m) {
console.log('m', m)
}
fun(100)
此时控制台m的值为100
参数个数:
function 函数名(m,n) {
函数体
}
fun(10,20)
此时会将10传给m,20传给n
function getMax(x, z) {
var m = x
var n = z
var max = m
if (n > max) {
max = n
}
console.log('最大值',max)
}
getMax(3, 2)
若实参小于形参个数:
function fun(m,n) {
console.log('m', m,'n', n)
}
fun(100)
若实参小于形参个数:会将值一一赋给形参,多于的实参没有意义。
以上例子,可以看出函数的作用:封装代码,封装的目的,复用代码!!
函数返回值--return语句(在函数体中,终止函数体代码向下执行)
function fun(){
console.log('i',i)
var i=0
return
console.log('i',i)
}
fun()
例如使用return返回最大值
function getMax(x, z) {
var m = x
var n = z
var max = m
if (n > max) {
max = n
}
return max
}
var m1 = getMax(3, 1)
var m2 = getMax(5, 1)
console.log(m1, m2)
总结一下函数的四种类型:
参数的默认值:
function fun(m){
m=m||10
console.log('m',m)
}
fun()
此时m的值为10。
函数定义方式:
1.声明式定义函数
fuction 函数名(){
}
2.函数表达式。
var 函数名=function{
}
函数名
预解析:
浏览器javascript 引擎,负责解析执行javascript的代码。
在执行javascript代码前,他会扫描通读JS的代码,如果发现声明式函数和var声明的变量,将其提前。
javascript源代码------->执行
|
预解析
1.声明式函数提前
2.Var声明提前
注意:同名情况,声明时函数优先
(函数名与变量明名不要一样,否则会函数优先,若是最先前给其赋值,则会报错,因为已经将其声明为一个变量而且给变量赋值了!浏览器会认为你的类型错误!)