1.函数是什么
函数
在我们编写代码时,经常性写的一个功能可以在很多地方使用(重复使用)
那为了解决这个重复使用的代码,出现了函数包裹整个代码,进行重复使用
函数就是封装了一段可以重复使用的代码。
模块
// 声明函数
1 自定义函数方式 因为它有自己的名字也叫命名函数
利用函数关键字 function自定义函数方式
语法 function fn (){
}
2 函数表达式(匿名函数)
语法 var fn = function(){
}
声明函数特点: function是关键词,必须要小写
// 调用函数
fn()
调用: 调用时必须加(),以为函数本身不会执行代码,只有调用函数时才会执行
2.函数的命名
函数名最好是语义化的,函数是一个动态的,所以最好使用动词,函数名如果是多个单词组成,最好是驼峰命名
3.函数的参数及使用
参数之间用逗号隔开
形参:函数在定义时接收调用时的传入参数
实参: 函数调用时传入的真实参数
语法 function fn(形参,形参,.....){}
fn(实参,实参,...)
注意:形参顺序是与实参传入的顺序一一对应
如果没有传入实参时,定义了形参,那形参就是undefined
// 如果实参个数小于形参,那多出来的形参就是undefined
如果形参个事小于实参时,那只能拿到形参对应的实参值
function getSum(a, b) {
var sum = 0
for (var i = a; i <= b; i++) {
sum += i
}
// alert(sum)
console.log(sum)
}
getSum(1, 10)
getSum(10, 20)
4.return语句的使用
return 和continue/break相似
continue是跳出本次循环
break是跳出整个循环
return 不仅可以结束循环,还可以返回return语句中的值,还可以结束当前函数体内的代码
案列:
function fn() {
console.log('你好')
return
console.log('不好')
}
fn()
使用:
<script>
// function getSum(a, b) {
// var sum = 0
// for (var i = a; i <= b; i++) {
// sum += i
// return
// }
// // alert(sum)
// console.log(sum)
// }
// getSum(1, 10)
// getSum(10, 20)
// 函数中如果没有return值,打印函数会是undefined
/*
function fn(){
}
console.log(fn())
*/
// return 语句后面有返回值,会返回undefined
// function fn() {
// return
// }
// console.log(fn())
// 如果return后有一个返回值,就会返回这一个值
// function fn() {
// return 1
// }
// console.log(fn())
//如果return中返回多个以逗号隔开的值,会返回最后一个值
// function fn() {
// return 1,2,3
// }
// console.log(fn())
// 如果return后面写的是数组,会返回数组
function fn() {
return [1, 2, 3, 4]
}
console.log(fn())
</script>
5.函数的arguments的使用
<script>
// arguments 是函数的内置对象,每个函数创建时都会有这个arguments
// 场景: 当不知道会给函数传多少实参时,就没办法定义多个形参
// 此时就可以使用arguments获取实参
/*
arguments:是一个伪数组,可以拿到数组的索引,也可以拿到数组的length
没有数组的方法
*/
function fn() {
// console.log(a)
// console.log(b)
// console.log(c)
// console.log(d)
console.log(arguments)
console.log(arguments[2])
console.log(arguments.length)
}
fn(1, 2, 3, 4)
</script>
6.函数之间的相互调用
-
<script>
// 函数之间可以相互调用
function fn1() {
return 1 + 2
}
var a = fn1()
function fn2(a) {
return a + 2
}
var b = fn2(a)
console.log(b)
// 函数之间调用时,可以把a函数的变量放入b函数调用实参
的变量中
// 实惨名和形参名不一定非是一致时,不至于要一一对应
function fn3() {
var a = 1 + 2
fn4(a)
}
fn3()
function fn4(b) {
console.log(b + 2)
}
</script>