知乎 前端一面 挂经

#凉面# 是我太菜了,太丢人了

内容:
自我介绍
项目难点
技术迁移难度考量
JS基础类型引用类型,区别。得从栈和堆的角度说
Promise有几个state,如果改变state了之后还能改变吗?如果then里面throw error了的话咋办呢?
那种情况catch不会获捕?比如看这个代码(复盘写的,面试没问)
new Promise((resolve, reject) => {
    setTimeout(() => {
      throw new Error('Error inside setTimeout!'); // 这个错误不会被Promise的catch捕获
    }, 1000);
  })
  .catch(err => {
    console.log(err.message);
  });
对应的Promise底层原理是什么?(复盘:我猜测是事件队列吗?)

CSS比较熟悉吧?
- 说一下盒模型的border重合?
说的应该是这个,内容感谢cnblogs的博主文章xiaoan0705/p/8619338.html (防止URL被屏蔽)
根据盒模型解释边距重叠
外边距重叠是指两个垂直相邻的块级元素,当上下两个边距相遇时,起外边距会产生重叠现象,且重叠后的外边距,等于其中较大者。(水平方向不会发生)
原因:当一个元素包含另一个元素时,假设没有padding或border把外边距分隔开,他们的上/下外边距就会发生合并。 父元素的第一个子元素的上边距margin-top如果碰不到有效的border或者padding.就会不断一层一层的找自己“领导”(父元素,祖先元素)的麻烦。只要给领导设置个有效的 border或者padding就可以有效的管制这个目无领导的margin防止它越级,假传圣旨,把自己的margin当领导的margin执行。

React 比较熟悉吧?
- 说一下React事件组合?React前版本用document后面用根节点
- 详细说一下key咋更新的,diff原理

问题好犀利,面到一半就觉得凉了,其他的暂时想不起来了之后在写。
全部评论
.catch()实际调用的也是.then(undefined,errorcallback)。因为前面的setTimetout一直没有调用reject(),所以promise的状态一直没有变成rejected,导致then方法里面的这个errorcallback也就是catch里面的这个回调函数一直无法执行,他一直在等待promise变更状态。
2 回复 分享
发布于 2023-09-30 22:31 福建
底层原理就是executor函数是在try...catch环境下执行的,抛错了会被捕获错误,然后执行reject
1 回复 分享
发布于 2023-09-26 09:41 北京
大佬,没有手撕吗?
点赞 回复 分享
发布于 2023-09-23 18:55 天津

相关推荐

评论
2
20
分享

创作者周榜

更多
牛客网
牛客企业服务