函数
函数:把一坨重复的代码封装,在需要的时候直接调用即可
函数的作用:代码的重用
<script type="text/javascript">//函数的声明,语法// function 函数名(){// // 函数体// }//函数的调用// 函数名();// 函数体只有在调用的时候才会执行,调用需要()进行调用。// 可以调用多次(重复使用)function say(){console.log("hello huge ");}</script>
函数参数:
在函数定义的时候,函数名字后面的小括号里的变量就是参数(写了几个就有几个参数)
在函数调用的时候给变量赋值,这是传值
形参:函数在定义的时候小括号里的变量叫形参
实参:函数在调用的时候小括号里传入的值叫实参,实参可以是变量也可以是值
<script type="text/javascript">//声明函数function getSum(x, y){//两个形参console.log(x+y);}//调用//1和2就是实参这里是值getSum(1,2);//3var num1= parseInt(prompt("输入第一个数字"));var num2=parseInt(prompt("输入第二个数字"));//这里num1和num2也是实参,但是是变量getSum(num1 + num2);//注:形参和实参的个数可以不一样</script>
函数的返回值
如果一个函数中有return ,那么这个函数就有返回值
如果一个函数中没有return,那么这个函数就没有返回值
<script type="text/javascript">//声明有返回值的函数function getSum(x,y){return x+y;}var res = getSum(1,2);console.log(res);//3//注意// 如果接收一个没有返回值的函数,是undefinedfunction getSum2(x,y){x+y;}var res2 = getSum2(1,3);console.log(res2);//undefined//注:函数遇到return就结束这个函数,所以在一个函数体//的return后面写代码是没有任何意义的,不会执行</script>
arguments的使用
avaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。也就是说所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有的实参。arguments是一个伪数组,因此及可以进行遍历
<script type="text/javascript">//计算n个数字的和,但是不确定n的个数//定义函数function getSum(){//使用arguments对象可以获取传入的每个参数的值var sum = 0;console.log(arguments.length);for(var i= 0;i < arguments.length;i++){sum += arguments[i];}return sum;}//函数体中有输出伪数组的长度 ====== 4console.log(getSum(10,20,30,40));//100</script>
函数的其他定义方式讨论
命名函数:函数如果有名字,就是命名函数
匿名函数:函数如果没有名字,就是匿名函数
<script type="text/javascript">//把一个函数给一个变量,此时形成了函数表达式//var 变量=匿名函数;//这里 function(){};就是匿名函数//这种形式就相当于个变脸赋值var f1 = function(){console.log("lang li hu ge ");};//此处需要;切记//因为你给一个变量赋值的时候后面是需要分号的//调用f1();//之前是函数的声明//他自己有名字function f2(){console.log(" lang li huge ");}</script>
区别
<script type="text/javascript">//声明的式函数创建//遇到重名,后面覆盖前面function f1(){console.log("huge 1");}f1();//huge 2function f1(){console.log("huge 2");}f1();//huge 2//函数表达式//相当于给变量重新赋值var f2 = function(){console.log("huge 1");};f2();//huge 1var f2 = function(){console.log("huge 2");};f2();//huge 2 给变量重新赋值(可以这样理解)</script>
匿名函数
没有名字的
<script type="text/javascript">//匿名函数不能通过直接调用来执行,//因此可以通过匿名函数的自调用的方式来执行//一次性的(function(){console.log("langlihuge");})();</script
函数也是一种数据类型
函数作为参数
函数做为返回值
<script type="text/javascript">//定义一个函数function f1(){}//获取类型console.log(typeof f1);//function//函数可以作为参数使用,如果一个函数作为参数,//那么我们说这个参数(函数)可以叫回调函数//只要是看到一个函数作为参数使用了,那就是回调函数function say(fn){//一个形参console.log("langli");fn();//当作函数的调用}function say2(){console.log("huge");}say(say2);//say2作为实参传入//输出结果//langli//huge//作为返回值function huge(){console.log("lnagli");return function(){console.log("huge");};//直接返回一个函数}huge()();//huge()调用函数得到一个函数,再()调用//输出结果//langli//huge</script>
由于本人时间原因,可能会出现停更
结束语

文章转载自敲代码的人,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




