2024年Web前端最全阿里巴巴内推一面过程(1),2024前端开发社招面试解答之性能优化

最后:

总结来说,面试成功=基础知识+项目经验+表达技巧+运气。我们无法控制运气,但是我们可以在别的地方花更多时间,每个环节都提前做好准备。

面试一方面是为了找到工作,升职加薪,另一方面也是对于自我能力的考察。能够面试成功不仅仅是来自面试前的临时抱佛脚,更重要的是在平时学习和工作中不断积累和坚持,把每个知识点、每一次项目开发、每次遇到的难点知识,做好积累,实践和总结。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

首先上来,有五道题目要写,这五道题分别就是:

  1. 写一个函数,将传入的obj对象进行深拷贝,并输出

//其实非常简单,我直接用了简单粗暴的JSON.parse(JSON.stringify(obj))完成

function(obj) {

return JSON.parse(JSON.stringify(obj))

}

后来面试官问了我,这种方法是一种简单粗暴的深拷贝方式,但这种方式有时会遇到一些bug,我当时没回答上来,面试官给我的答案是如果这个数组结构里有 function 之类的,就会出现一些问题,但他问我还能用什么方式进行深拷贝的时候,我就说用递归进行深拷贝。这第一部分还算可以。

如果有不知道深拷贝浅拷贝的小伙伴可以去看一下我的一篇文章,我专门讲述了深浅拷贝——面试题被问到再也不慌,深究JavaScript中的深拷贝与浅拷贝

  1. 设置一个函数,使得js代码处理频率控制在250ms(大概是这么表达,我也记不太清了),反正就是用到了节流的知识

// 我就直接用滚动事件来举例这个节流的实现

//初始化一个变量,用来存储上一次获取数据的时间戳

let last = 0

window.onscroll = function () {

//用来获取此时触发滚动事件时的时间戳

let now = Date.now()

//判断距离上次获取数据间隔了是否有1秒

if(now - last >= 1000) {

console.log(nav_bar.offsetTop)

//重置一下上一次获取数据时间戳

last = Date.now()

}

}

其实还可以用定时器来实现节流,但定时器会比时间戳复杂一点点,我有点紧张就没说上来。

如果有不懂什么是节流的小伙伴可以去看一下我写过的一篇文章,专门讲述如何实现节流和防抖的——前端性能优化之防抖与节流,大幅度降低你的事件处理性能

  1. 实现图示的效果

在这里插入图片描述

我当时一看就知道,要用到 flex 布局,所以就简单写一下就行了:

Title
A
B
C
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值