普通网友 2025-12-26 18:03 采纳率: 20%
浏览 2

箭头函数和普通函数区别。简单讲讲promise。react新旧生命周期。

箭头函数和普通函数区别。简单讲讲promise。react新旧生命周期。

  • 写回答

2条回答 默认 最新

  • 檀越@新空间 2025-12-26 20:02
    关注

    晚上好🌙🌙🌙
    本答案参考通义千问

    以下是对你提出的问题的详细解答,包括 箭头函数与普通函数的区别Promise 的简单讲解 以及 React 新旧生命周期 的对比:


    一、箭头函数和普通函数的区别

    1. 语法不同

    • 普通函数:使用 function 关键字定义
      function add(a, b) {
        return a + b;
      }
      
    • 箭头函数:使用 => 定义,更简洁
      const add = (a, b) => a + b;
      

    2. this 的绑定方式不同

    • 普通函数:在调用时动态绑定 this,取决于调用上下文。
    • 箭头函数捕获当前作用域的 this 值,不会重新绑定。

    示例:

    const obj = {
      name: "Alice",
      sayHello: function() {
        setTimeout(function() {
          console.log(this.name); // 此时 this 指向 window 或 undefined(严格模式)
        }, 100);
      },
      sayHelloArrow: function() {
        setTimeout(() => {
          console.log(this.name); // this 指向 obj
        }, 100);
      }
    };
    

    3. 不能作为构造函数

    • 普通函数:可以使用 new 实例化。
    • 箭头函数:不能作为构造函数,使用 new 会抛出错误。

    4. arguments 对象

    • 普通函数:有 arguments 对象,可访问所有参数。
    • 箭头函数:没有 arguments 对象,但可以通过 ...args 获取参数。

    二、Promise 简单讲解

    1. 什么是 Promise?

    Promise 是 JavaScript 中用于处理异步操作的对象,它表示一个可能现在或将来才会完成的异步操作及其结果。

    2. 基本结构

    const promise = new Promise((resolve, reject) => {
      // 异步操作
      if (success) {
        resolve("成功");
      } else {
        reject("失败");
      }
    });
    

    3. 常用方法

    • .then():处理成功的情况
    • .catch():处理失败的情况
    • .finally():无论成功或失败都会执行

    示例:

    fetch('https://api.example.com/data')
      .then(response => response.json())
      .then(data => console.log(data))
      .catch(error => console.error('Error:', error));
    

    4. 优点

    • 避免回调地狱(Callback Hell)
    • 更清晰的异步流程控制

    三、React 新旧生命周期对比

    注意:从 React 16.3 版本开始,部分生命周期方法被标记为 不推荐使用(deprecated),并引入了新的生命周期方法。以下是对新旧生命周期的对比说明。

    1. 旧版生命周期(已弃用)

    | 生命周期方法 | 用途 | |-------------|------| | componentWillMount | 在组件渲染前调用(即将废弃) | | componentDidMount | 组件挂载后调用 | | componentWillReceiveProps | 接收新 props 时调用(即将废弃) | | shouldComponentUpdate | 控制是否更新组件 | | componentWillUpdate | 更新前调用(即将废弃) | | componentDidUpdate | 更新后调用 | | componentWillUnmount | 组件卸载前调用 |

    2. 新版生命周期(推荐使用)

    | 生命周期方法 | 用途 | |-------------|------| | constructor | 构造函数,初始化 state 和绑定方法 | | static getDerivedStateFromProps | 根据 props 更新 state(替代 componentWillReceiveProps) | | render | 渲染组件 | | componentDidMount | 组件挂载后调用 | | getSnapshotBeforeUpdate | 在更新前获取快照(替代 componentWillUpdate) | | componentDidUpdate | 更新后调用 | | componentDidUnmount | 组件卸载前调用(原 componentWillUnmount) |

    3. 关键变化总结

    • 移除componentWillMount, componentWillReceiveProps, componentWillUpdate
    • 新增getDerivedStateFromProps, getSnapshotBeforeUpdate
    • 命名变更componentWillUnmountcomponentDidUnmount

    四、总结

    ✅ 箭头函数 vs 普通函数:

    • 语法更简洁
    • this 不会重新绑定
    • 不能作为构造函数
    • 不支持 arguments 对象

    ✅ Promise:

    • 处理异步操作
    • 使用 .then().catch() 控制流程
    • 避免回调地狱

    ✅ React 生命周期:

    • 旧版方法逐渐被弃用
    • 新版生命周期更清晰、可控
    • 推荐使用 useEffect(React Hooks)进行状态管理

    如果你需要更深入的代码示例或具体应用场景,请告诉我!

    评论

报告相同问题?

问题事件

  • 创建了问题 12月26日