JavaScript(l六)-函数

  • A+
所属分类:Web前端
摘要

第一种定义方式:可在后面定义前面调用.第二种定义方式:必须先定义后面执行


函数:定义函数

定义方式

第一种定义方式:可在后面定义前面调用.

    function gg(){       console.log("函数内部的代码");     }

第二种定义方式:必须先定义后面执行

    // b();//报错 -- let定义的函数不可以提前调用     let b = function(){       console.log("这是函数b");     };     //只能在定义之后调用     b();

函数表达式

通常我们需要定义函数之后,再才能用 函数名() 的形式自执行,函数表达式可以直接在后面加小括号自执行执行。

    (function(){       console.log("函数内部代码");     })();      //其他的函数表达式写法     (function(){       console.log("函数表达式自执行2");     }());      +function(){       console.log("函数表达式自执行3");     }();      -function(){       console.log("函数表达式自执行4");     }();      ~function(){       console.log("函数表达式自执行5");     }();      !function(){       console.log("函数表达式自执行6");     }();     //轮播图     (function(){      })();      //选项卡     (function(){      })();      //侧边栏     (function(){      })();

有名函数与匿名函数

   //有名函数      function gg(){       console.log("函数内部的代码");     }*/      //函数自执行     gg();       //匿名函数     //充当事件函数     document.onclick = gg;      //充当事件函数的时候,可以用函数名字,也可以直接写一个匿名函数     document.onclick = function (){       console.log("这是一个匿名函数");     };

 

函数的作用域

一个变量起作用的区域:全局变量(全局作用域),局部变量(局部作用域)
作用域链:要使用某个变量的时候,先从自身作用域开始查找,自己有就用自己的,自己没有再从父级作用域开始查找,依次类推,直到全局为止。
    let a = 10;     function x(){        let a = 20;        function y(){         console.log(a);       }       y();     }      x();     console.log(a);

参数

实参   形参   不定参

实参:函数自执行时,小括号里面传入的数据;形参:函数定义时,小括号里面写的变量名;不定参:函数内部的伪数组,用于存储着所有的实参集合;

    //功能函数:求和     function sum( a,b ){ //形参       console.log(a,b,a + b);     }      sum( 3 , 4 );//实参     sum( 3 , 5 );//实参     sum( 3 , 10 );//实参      //实参多 -- 没有对应的形参来接收多的,但是正常运行不会出错     sum( 5 , 6 , 7 );      //实参少 -- 没有对应数据的形参就是默认值undefined     sum( 2 );