JavaScript(六)-函数

函数:定义函数

定义方式

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

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

第二种定义方式:必须先定义后面执行,提早调用报错函数

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

函数的做用域

一个变量起做用的区域:全局变量(全局做用域),局部变量(局部做用域)
做用域链:要使用某个变量的时候,先从自身做用域开始查找,本身有就用本身的,本身没有再从父级做用域开始查找,依次类推,直到全局为止。
1.不容许从父级做用域访问子级做用域,容许从子级做用域访问父级做用域,
2.做用域不一样,变量名是能够重复到的.
3.同级之间没法访问
    //全局变量
   let a = 10; function x(){     
 //局部变量 let a = 20; function y(){ console.log(a); } y(); } x(); console.log(a);

函数表达式

一般咱们须要定义函数以后,再才能用 函数名() 的形式自执行,函数表达式能够直接在后面加小括号自执行执行。优化

开发单独功能模块,方便代码后期整理,优化spa

    (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("这是一个匿名函数"); };
  
     //匿名函数不能单独出现
     // function(){} //报错
 

参数

实参   形参   不定参

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

函数定义时()写的是形参,函数执行()写的是实参blog

函数内部有一个变量 Arguments,Arguments不定参记录全部实参传给形参的集合
注:当实参传入形参不是一个数据时,自动转换(寻找变量值运算), 当实参传入一个函数时,形参自执行便可.
    //功能函数:求和
    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 );    
相关文章
相关标签/搜索