当前位置: 首页 > news >正文

Javascript 函数

6.1 什么是函数及组成

  • 语法

    function name(参数1, 参数2, 参数3){
        // 要执行的代码
    }
    
  • 示例

    var a = 1, b = 2
    function sum(){
        return a * 10 + b
    }
    
  • 注意

    return只能在函数里使用


6.2 形参与实参

  • 形参

    • 声明函数的时候定义的参数

      function sum(a, b){		// a、b是形参
          // 要执行的代码
      }
      
  • 实参

    • 调用函数时候传的一个参数

      sum(1, 2)	// 1、2就是实参
      
  • 特点

    • 形参和实参是一一对应的
    • 数量可以不对应
    • 参数的类型不确定
    • 函数可以设置默认参数
    • 实参可以是字面量也可以是变量

6.3 声明的方法

  • 声明方式

    // 关键字直接声明
    function a(参数){
        // 执行语句
    }
    
    // 匿名函数表达式赋给变量声明
    var a = function(参数){
        // 执行语句
    }
    
    // 构造函数声明函数
    var sum = new Function('a', 'b', 'return a + b')
    console.log(sum(1, 2))
    

6.4 返回值

  • return的作用
    • 返回值
    • 中断函数
    • 只能写在函数体里面

6.5 变量作用域

  • 变量

    • 全局变量

      • 挂载到window对象上的

        var a = '全局变量';
        console.log(window.a);		// 全局变量
        
    • 局部变量

      • 函数体内部声明的变量

        function a(){
            var b = 1
        }
        console.log(b)		// 报错:b is not defined
        // 函数内声明的局部变量外部不可访问
        
  • 作用域链

    • 内层函数是可以访问外层函数声明的每一个变量,反之则不可以

6.6 隐藏的参数arguments

  • arguments

    arguments 是一个类数组对象,它有 length 属性,可以通过索引访问每个参数,但它并不是一个真正的数组,因此不支持数组方法(如 pushpopmap 等)。例如:

    function test(a, b) {
        console.log(arguments.length); // 输出传入的参数数量
        console.log(arguments[0], arguments[1], arguments[2]); // 可以访问所有传入的参数
    }
    test(1, 2, 3); // 输出:3,1 2 3
    
    • 作用是用来取参的
    • 传入的实参都能在函数体里通过arguments类数组取到
    • 具有数组的一些特点
      • 通过索引取参
      • 有长度

6.7 立即执行函数

  • 写法

    // 第一种
    (function(){
        // 代码块
    })();
    
    // 第二种
    (function({
       // 代码块 
    })())
    
  • 括号的作用

    • 帮助我们调用函数
  • 特点

    • 匿名函数

    • 自动执行

    • 执行完成后自动销毁

    • 可以传参数

      (function(a, b){
          console.log(a + b);
      })(1, 2);	// 3
      
  • 前面的语句必须加分号,否则会解析错误

    // 假如没有分号
    var x = 5
    (function() {
        console.log("Hello!");
    })();
    
    // JavaScript 引擎会将这两行代码解析为:
    var x = 5(function() {
        console.log("Hello!");
    })();	// 导致语法错误
    

相关文章:

  • Web3 的去中心化治理:如何实现透明与公正
  • 【后端开发】go-zero微服务框架实践(goland框架对比,go-zero开发实践,文件上传问题优化等等)
  • Elasticsearch:“Your trial license is expired”
  • 学习LED驱动知识(二)
  • 使用kolla-ansible单点部署openstack云平台
  • MySQL 值为Null会导致的问题
  • 【docker简化部署有状态prometheus+grafana】
  • Linux基础之基础概念
  • Java字符串(算法题相关)
  • 【第23节】C++设计模式(行为模式)-Interpreter(解释器)模式
  • 【面试】Java 集合
  • 使用格式工厂提取视频中的音频
  • 中国AI新星Manus:通用Agent的破晓时刻
  • 《OkHttp:工作原理 拦截器链深度解析》
  • 达梦数据库、图形管理工具安装和 JDBC 使用
  • 【强化学习笔记2】奖励稀疏的应对方式以及逆强化学习
  • 網站為何要注意负载均衡的應用
  • 可视化大屏:解锁数据奥秘,驱动智慧决策
  • scala 中的@BeanProperty
  • LabVIEW闭环控制系统硬件选型与实时性能
  • 印称一名高级官员在巴基斯坦发动的袭击中死亡
  • 九家企业与上海静安集中签约,投资额超10亿元
  • 国家主席习近平同普京总统共见记者
  • 汪明荃,今生不负你
  • 司法部:持续规范行政执法行为,加快制定行政执法监督条例
  • 对话|蓬皮杜策展人布莱昂:抽象风景中的中国审美