zoukankan      html  css  js  c++  java
  • JS函数

    函数

    一、作用 :封装一段待执行的代码

    二、语法 :

    //函数声明
    function 函数名(参数列表){
        函数体
        return 返回值;
     }
    //函数调用
    函数名(参数列表);

    1.无参数无返回值的函数

    //函数声明
    function f1(){
        console.log('f1被调用');
    }
    //函数调用
    f1()

    2.带参数的函数

    //Js允许形参和实参的个数不匹配
    function f2(n,m){//形参未传值,默认为undefined
        console.log(n*n);
        //函数内部可以使用arguments获取实际传递的参数
        console.log(arguments)
    }
    f2(5);//函数调用是将实际参数赋值给形式参数     //25
    f2(3,9);//允许形参和实参的个数布匹配            //9

    3.带有返回值的函数

    function f3(a){
        //局部变量r,只能在当前函数中使用
        var r=a*a;
        var r1=a+a;
        //将函数内部的变量传递给外界使用
        //只能返回一个值,后面的代码都不执行
        return r,r1;    //不管最后返回几个值 就返回最后一个值 r1
        console.log('函数使用')//不执行
    }
    //全局变量r
    var r = f3(4);    
    console.log(r,);//8

    三、使用 :函数名自定义,见名知意,命名规范参照变量的命名规范。普通函数以小写字母开头,用于区分构造函数(构造函数使用大写字母开头,定义类)

    四、匿名函数:省略函数名的函数。语法为:

    匿名函数自执行

     (function (形参){
      
     })(实参);

    匿名函数的使用,自执行:(匿名函数的声明)(实参)

    (function(){
    //构建局部作用域                                                            
        console.log('匿名函数自执行');
    })()

    定义变量接收匿名函数

     var fn = function (){};
     fn(); //函数调用

    匿名函数的使用,自执行:(匿名函数的声明)(实参)

    (function(){
        //构建局部作用域
        console.log('1.匿名函数自执行');
    })()
    console.log('-----------------------')
    
    var fn=function(){
        console.log('2.fn被调用');
    }
    fn();
    console.log(2,fn)//函数
    console.log('-----------------------')
    
    //函数作为参数传递
    function show(f){
        console.log('show:',f)
        f(); //因为show调用的fn的函数 所有此处的f就是fn
    }
    //直接传递函数名
    show(fn);//f=fn
    console.log('-----------------------')
    
    //匿名函数作为参数传递
    show(function(){
        console.log('4.直接传递匿名函数')
    })
    1.匿名函数自执行
     -----------------------
     
    2.fn被调用
    2 ƒ (){
        console.log('2.fn被调用');
    }
     -----------------------
     
    show: ƒ (){
        console.log('2.fn被调用');
    }
    2.fn被调用
     -----------------------
     
    show: ƒ (){
        console.log('4.直接传递匿名函数')
    }
    4.直接传递匿名函数

    五、作用域:JS中作用域分为全局作用域和函数作用域,以函数的{ }作为划分作用域的依据

    1. 全局变量和全局函数
      只要在函数外部使用var关键字定义的变量,或函数都是全局变量和全局函数,在任何地方都可以访问
      所有省略var关键字定义的变量,一律是全局变量
    2. 局部变量/局部函数
      在函数内部使用var关键字定义的变量为局部变量,函数内部定义的函数也为局部函数,只能在当前作用域中使用,外界无法访问
    3. 作用域链
      局部作用域中访问变量或函数,首先从当前作用域中查找,当前作用域中没有的话,向上级作用域中查找,直至全局作用域

  • 相关阅读:
    测试是否有必要看开发代码?如何能看懂?
    【LeetCode】111. 二叉树的最小深度(BFS 解题套路框架,要会默写)
    【LeetCode】112. 路径总和
    【测试开发】知识点配置 Nginx 解决多端口访问
    【测试开发】知识点使用EasyExcel,实现excel导出和导入
    p5 随机圆连接背景和代码树
    angular技巧
    javascript原生技巧篇
    MybatisPlus
    安装 jupyter notebook
  • 原文地址:https://www.cnblogs.com/maplethefox/p/11222961.html
Copyright © 2011-2022 走看看