1.函数基础与种类

1.1 代码设计规则

  1. 高内聚、低耦合
    1. 模块的单一责任制
      1. 尽量使代码块与代码块之间相互独立
  2. 函数 -> 解耦合

    1.2 函数

  3. 语法格式

    1. 函数声明方法

      1. /*1.用 function 关键字声明一个名为 test 的函数*/
      2. function test(参数){
      3. //执行语句;
      4. }
      5. /*2.用表达式 字面量*/
      6. var test = function test1(){ //test1()只在函数内部可用
      7. var a = 1,
      8. b = 2;
      9. console.log(a,b);
      10. }
      11. var test = function (){//不起名字时,称为匿名函数,也叫函数字面量
      12. var a = 1,
      13. b = 2;
      14. console.log(a,b);
      15. }
    2. 命名规则

      1. 不能以数字开头
      2. 可以以字母 _ $ 开头
      3. 可以包含数字
      4. 小驼峰命名法
  4. 参数

    1. 形参和实参

      1. /*1.分辨实参和形参*/
      2. var num1 = Number(window.prompt('a'));
      3. var num2 = Number(window.prompt('b'));
      4. function test(num1,num2){//形式参数
      5. console.log(num1 + num2);
      6. }
      7. test(num1,num2);//实际参数
      8. /*2.实参求和*/
      9. function sum(){
      10. var a = 0;
      11. for(var i = 0; i < arguments.length; i++){
      12. a += arguments.[i];
      13. }
      14. console.log(a);
      15. }
      16. sum(1, 2, 3, 4, 5, 6);
      17. /*3.更改实参的值*/
      18. function test(a, b){
      19. a = 3;
      20. console.log(arguments[0]);//3 在函数内部可以更改实参的值
      21. }
      22. test(1, 2);
      23. /*4.更改未赋值的实参的值*/
      24. function test(a, b){
      25. b = 3;
      26. console.log(arguments[1]);//undefined 无法给未赋值的实参赋值
      27. }
      28. test(1);
    2. 特征

      1. 形参和实参的数量可以不相等
      2. 函数内部知道传入了实参的数量和值,以及形参的数量
      3. 形参必须在调用函数时赋予实参的值后,在函数内部才能再次更改形参的值;如果未传入实参的值,在函数内部无法针对该形参更改值。
  5. return
    1. 返回数据
    2. 中止函数执行
  6. 变量作用域
    1. 全局变量 & 局部变量(暂时理解)
      1. 函数外部定义的变量,函数内部可以用
      2. 函数内部定义的变量,函数外部不可以用
  7. 总结:
    1. 函数是一个固定的功能或程序段被封装的过程,实现一个固定的功能或者是程序,在这个封装体中需要一个入口和一个出口,入口就是参数,出口就是返回
  8. 作业:
    1. 定义一个函数,从wp接受一个饮料的名称,函数返回对应的价格
    2. 定义一个函数,从wp接受第一个数,接受一个运算符号(+ - & / %),接受第二个数,利用函数做运算,返回运算结果
    3. 定义一个函数,从wp接受一个n,算出n的阶乘,不能用for
    4. 定义一个函数,从wp接受一个n,算出斐波那契数列的第n位,不能用for循环