箭头函数和普通函数区别。简单讲讲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 - 命名变更:
componentWillUnmount→componentDidUnmount
四、总结
✅ 箭头函数 vs 普通函数:
- 语法更简洁
this不会重新绑定- 不能作为构造函数
- 不支持
arguments对象
✅ Promise:
- 处理异步操作
- 使用
.then()和.catch()控制流程 - 避免回调地狱
✅ React 生命周期:
- 旧版方法逐渐被弃用
- 新版生命周期更清晰、可控
- 推荐使用
useEffect(React Hooks)进行状态管理
如果你需要更深入的代码示例或具体应用场景,请告诉我!
解决 无用评论 打赏 举报- 普通函数:使用