函数:一个固定的功能或者程序段被封装的过程,实现一个固定的功能或者是程序,在这个封装体中需要一个入口和一个入口,入口就是参数,出口就是返回。
函数可以带来的好处:高内聚,低耦合;模块的单一责任制;
函数名的命名规则:
1、不能数字开
头
2、字母,-,$
3、包含数字
4、小驼峰命名法 复合单词myWonderfuTest
最基本的函数写法-
函数声明:
function test(参数){
函数的执行语句;
}
匿名表达式 函数字面量:
var test = function test1(){
函数的执行语句;
}
函数的组成部分:
function 函数名(参数【可选】){
函数的执行语句;
返回/返回值;
}
形式参数:形式上占位
实际参数:形式参数的值赋值给到实际参数
形参和实参数量可以不相等
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
function test(a, b) {
console.log(arguments)
}
test(1, 2, 3)
</script>
</body>
</html>
如下所示:
获取实参的长度:arguments.length
获取形参的长度:函数名.length
一个函数被调用时,累加他的实参值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
function sum() {
var a = 0;
for (var i = 0; i < arguments.length; i++) {
a += arguments[i];
}
console.log(a)
}
sum(1, 2, 3, 4)
</script>
</body>
</html>
输出如下:
当传入了实参,实参的值可以改变;
当没有传入实参,实参的值不可以改变;
function test(a,b) {
b = 3;
console.log(arguments[0])
}
test(1);
值被改变了:
function test(a,b) {
a = 3;
console.log(arguments[1])
}
test(1);
值没被改变:
return写在那里,后面的语句就不会再次执行。终止函数的执行。
function test(name) {
if (!name) {
return '您没有填写姓名!'
}
return name;
}
console.log(test());
打印如下:
全局变量:函数外部
内部变量:函数内部