一、函数
函数是什么:函数是实现某个功能的代码块
1、无参数
语法
声明函数:function函数名(){调用函数执行代码}
调用函数:函数名()
<script> //1.声明函数:function函数名(){调用函数执行代码} function test() { console.log("我是测试函数"); } //2.调用函数: 函数名() test() </script>
2、有参数
语法
声明函数:function 函数名(形参1,形参2,形参3…)
调用函数:函数名(实参1,实参2…)
<script> function add(a,b) { console.log(a,b); } //a,b是形参 60,90是实参 add(60,90) </script>
在函数中内置一个arguments的数组,包所有传过来的实参。
<script> function sum(a,b,c,d) { // console.log(a+b+c+d); console.log(arguments); //定义初始和为0 var sum=0; for(var i=0;i<arguments.length;i++){ sum=sum+arguments[i] } console.log(sum); return sum } sum(2,3,4,5,6,7) var h1=document.querySelector('h1') h1.innerHTML="当前求和为"+sum(2,3,4,5,6,7) </script>
参数在定义时可以设置默认值。
3、作用域
全局变量/全局作用域
定义在函数外面的变量就时全局变量,整个文档都可以使用(作用域是整个文档)
局部变量/局部作用域
定义在函数内部的变量就是这个函数的局部变量,在函数内部可以使用(作用域是当前函数)
补充
全局变量始终在内存中,局部变量如果没有被其他函数引用的情况下,函数调用后会被释放。
4、匿名函数(自调用函数)
语法
(function(形参){ })(实参)
5、return的作用
函数的返回值,结束函数
6、回调函数
把函数当作一个参数传到另一个函数中
<script> function test3() { console.log("san"); } function test4(a) { a() } test4(test3) </script>
7、递归函数
在函数本身调用自己
<script> //5! 5*4*3*2*1 function recursive(n) { if(n===1) return 1 return n*recursive(n-1) } console.log(recursive(3)); </script>