ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
#第七章函数 讲师:_无脑码农(张磊)_ 博客:http://www.h5code.com 课程内容: [TOC] * * * * * >函数是定义一次但却可以调用或执行任意多次的一段JS 代码。函数有时会有参数,即函数被调用时指定了值的局部变量。函数常常使用这些参数来计算一个返回值,这个值也成为函数调用表达式的值。 ###1.>函数声明 >在任何地方、任何时候调用执行。ECMAScript中的函数使用function 关键字来声明,后跟一组参数以及函数体。 ~~~ function box() { //没有参数的函数 alert('只有函数被调用,我才会被之执行'); } box(); //直接调用函数 function box(name, age) { //带参数的函数 alert('你的姓名:'+name+',年龄:'+age); } box('无脑码农',28); //调用函数,并传参 ~~~ ###2.>return 返回值 >带参和不带参的函数,都没有定义返回值,而是调用后直接执行的。实际上,任何函数都可以通过return语句跟后面的要返回的值来实现返回值。 ~~~ function box() { //没有参数的函数 return '我被返回了!'; //通过return 把函数的最终值返回 } alert(box()); //调用函数会得到返回值,然后外面输出 function box(name, age) { //有参数的函数 return '你的姓名:'+name+',年龄:'+age;//通过return 把函数的最终值返回 } alert(box('无脑码农',28));//调用函数得到返回值,然后外面输出 ~~~ >我们还可以把函数的返回值赋给一个变量,然后通过变量进行操作。 ~~~ function box(num1, num2) { return num1 * num2; } var num = box(10, 5); //函数得到的返回值赋给变量 alert(num); ~~~ >return 语句还有一个功能就是退出当前函数,注意和break 的区别。PS:break 用在循环和switch 分支语句里。 ~~~ function box(num) { if (num < 5) return num; //满足条件,就返回num return 100; //返回之后,就不执行下面的语句了 } alert(box(10)); ~~~ ###3.>arguments 对象 >ECMAScript 函数不介意传递进来多少参数,也不会因为参数不统一而错误。实际上,函数体内可以通过arguments对象来接收传递进来的参数。 ~~~ function box() { return arguments[0]+' | '+arguments[1]; //得到每次参数的值 } alert(box(1,2,3,4,5,6)); //传递参数 arguments 对象的length 属性可以得到参数的数量。 function box() { return arguments.length; //得到6 } alert(box(1,2,3,4,5,6)); ~~~ >我们可以利用length这个属性,来智能的判断有多少参数,然后把参数进行合理的应用。比如,要实现一个加法运算,将所有传进来的数字累加,而数字的个数又不确定。 ~~~ function box() { var sum = 0; if (arguments.length == 0) return sum; //如果没有参数,退出 for(var i = 0;i < arguments.length; i++) { //如果有,就累加 sum = sum + arguments[i]; } return sum; //返回累加结果 } alert(box(5,9,12)); ~~~ >ECMAScript 中的函数,没有像其他高级语言那种函数重载功能。 ~~~ function box(num) { return num + 100; } function box (num) { //会执行这个函数 return num + 200; } alert(box(50)); //返回结果 ~~~