函数介绍:
将任意代码封装起来,需要用的时候调用就行
function 函数名(){函数体(封装的代码)}
只有调用函数时,函数里的代码才会执行
调用函数的语句:函数名()
函数封装后可以放在一个文件中,外部引入封装文件
封装函数,最好弄个注释在函数之前
优点:封装代码后,代码更加简洁
复用,在重复功能的时候直接调用就行
代码执行时机,随时可以再我们想要执行的时候执行
/*
打印100-200内能被6整除的前三个数
*/
function print() {
var count = 0
for (var i = 100; i <= 200; i++) {
if (i % 6 === 0) {
console.log(i)
count++
}
if (count == 3) {
break
}
}
}
/*
入职时工资为10k,每年增长5%,50年后工资为
*/
function salary() {
var pay = 10 * 12
for (var i = 2; i <= 50; i++) {
pay *= 1.05
}
console.log('50年后工资为:' + (pay / 12).toFixed(2) + 'k')
}
/*
打印出1000-2000年中的闰年,每四个换行
*/
function runNian() {
var count = 0
for (var i = 1000; i <= 2000; i += 4) {
if ((i % 4 === 0 && i % 100 !== 0) || i % 400 === 0) {
document.write(i+' ')
count++
}
if (count == 4) {
document.write('<br/>')
count = 0
}
}
}
// 函数调用
print()
salary()
runNian()
函数的参数:
function 函数名(a,b,c……){函数体}
在函数名之后的括号里面写上一些参数,这些参数便可以再函数体中使用
这就是函数的参数,不需要用var 进行变量声明
调用时需要在函数体中加上数字 函数名(10,20,30……)
形参:只要在定义函数的括号中的变量就是形参
实参:调用时,传递的值叫做实参
函数参数个数:
如果实参和形参的个数不对应,实参也会按照顺序赋值给形参
实参多了就不用,形参多了,多的那个就没有被赋值
可以给形参一个默认值
y = y || 10 //如果y没有传值(undefined.false),使用右边的值,作为默认值
可以再函数值后面的括号里面给y=10, 默认值
/*
定义求三个数中最大值的函数
*/
function threeMax(num1, num2, num3) {
var max = num1 > num2 ? num1 : num2
max = max > num3 ? max : num3
console.log(num1 + ',' + num2 + ',' + num3 + '中最大的数是:' + max)
}
threeMax(23, 12, 33)
threeMax(33, 66, 22)
函数返回值:
return 作用:将return后面变量的值返回到函数调用处
此时,可以把函数调佣赋值给一个变量
函数的分类:根据参数和返回值,可将函数分成4中类型
1、无参无返回值 function 函数名(){函数体} 函数名()
2、有参无返回值 function 函数名(形参……){函数体} 函数名(实参……)
3、无参有返回值 function 函数名(){函数体 return 变量值} var 变量=函数名()
4、有参有返回值 function 函数名(形参……){函数体 return 变量值} var 变量=函数(实参……)
return语句:在函数体中使用
return 值:直接返回值到调佣语句
return没有值时,返回到调用语句,不执行函数return后面的语句
// 封装求三个数最大的,不能小于0
function maxThree(num1, num2, num3) {
if (num1 < 0 || num2 < 0 || num3 < 0) {
return 'error'
}
var max = num1 > num2 ? num1 : num2
max = max > num3 ? max : num3
return max
}
var str = maxThree(11, -1, 13)
console.log(str)
定义函数:
声明式:function 函数名(){函数体}
特点:函数调用语句可以在函数定义的上面
赋值式:var 函数名=function(){函数体} 调用:函数名()
特点:函数调用语句不能在函数定义的上面
var ouShu = function (min, max) {
for (var i = min; i <= max; i++) {
if (i % 2 === 0) {
console.log(i)
}
}
}
ouShu(3, 66)
js源代码——》浏览器解析——》执行代码——》输出结果
预解析:在浏览器解析之前,js源代码之后,先对源代码通读
遇到声明式函数和var关键字,都会提到最前面
注意:var只会把声明变量提前,而赋值不会提前
如果函数名和变量名相同时,函数优先