58同城 前端一面 面经

1. 如何实现流式输出

2. 流式输出前后端分别是怎么做的

3. promise 输出问题

4. ```js
   // 500毫秒后会阻塞吗
   setTimeout(() => {
       while(1) {}
   }, 500);
   ```

5. ```js
   // 为什么网络请求还没回来就立即开始打印 1
   axios.get('url'); // 需要 5 秒
   setInterval(() => {
       console.log(1);
   }, 1000);
   ```

6. 为什么文件打包后会生成一个 hash 值,对于浏览器的作用是什么

7. 为什么 index.html 打包后不生成 hash 值

8. 为什么一个 const 数组可以调用 push

9. 如何禁止 push(ts readonly、Proxy 拦截 **get** 操作)

10. 手撕:斐波那契数列

11. 递归的前提下如何优化它(实现装饰器 @cache、闭包记忆、map 保存计算结果)
全部评论
社招吗
1 回复 分享
发布于 2024-11-26 14:14 陕西
佬几号面的
点赞 回复 分享
发布于 2024-11-13 15:49 湖北

相关推荐

6. Promise 的原理Promise 是一种状态机,具有三种状态(Pending、Fulfilled、Rejected),通过状态转换来处理异步逻辑。以下是 Promise 的内部工作机制:https://www.nowcoder.com/issue/tutorial?zhuanlanId=j572L2&uuid=d5653a45948844c781778deb4ab3a3746.1 状态转换从 Pending 状态转换到 Fulfilled 状态时,调用 resolve(value)。从 Pending 状态转换到 Rejected 状态时,调用 reject(reason)。6.2 then 和 catchthen(onFulfilled, onRejected) 方法返回一个新的 Promise,并处理两个函数的传入。如果原 Promise 成功,执行 onFulfilled,将结果传入。如果原 Promise 失败,执行 onRejected,将错误原因传入。6.3 任务队列通过微任务(Microtask)执行队列,then 方法内的回调会在当前执行栈执行完毕后立即执行。这意味着 Promise 的处理在事件循环的微任务阶段进行,优先于宏任务(如 setTimeout)。7. 小结Promise 提供了一种优雅的处理异步操作的方式,大大提高了代码的可读性和维护性。通过链式调用、Promise.all 和 Promise.race 等方法,可以高效地管理多个异步操作。此外,结合 async/await 语法,可以使异步代码更清晰、易于理解。掌握这些进阶用法以及背后的原理,将帮助你在 JavaScript 的异步编程中更加游刃有余。https://www.nowcoder.com/issue/tutorial?zhuanlanId=j572L2&uuid=d5653a45948844c781778deb4ab3a374#牛客AI配图神器#
点赞 评论 收藏
分享
评论
2
7
分享

创作者周榜

更多
牛客网
牛客企业服务