字节前端一面面经整理,这些你都会了吗?
全程没有八股文,没有leetcode题。直接被按在地上摩擦......1. 假如现在本地无法实现加法功能,现有其他团队提供的api
await asyncAdd = (a, b, (err, res) => {
// 利用网络请求实现a+b,成功结果返回res
})
现需要改进该api,利用其实现一个add方法,使其能够实现多个数相加(写主要思路即可)(时间复杂度为logn)
function add(a,b,c...) {
//Todo
}
(疯狂被找问题,主要就是异步执行顺序的问题,最终也没写出来...)
2. 有很多li标签且顺序不固定,怎么把最后一个class为b的li改为红色
<ul>
<li class="a" />
<li class="b" />
<li class="b" />
<li class="a" />
...
</ul>
答:使用伪类last-child。问:伪类的实现原理了解么?答:。。。(请求评论区大神)
3. 有一个类似表格(或者日历)的布局,每个单元格的border为1px,相邻单元格中间的border也为1px,怎么实现?答:从第二列开始margin-left:-1px,第二排开始margin-top:-1px;问: 现在要实现选择某一单元格会高亮,怎么实现?
答:(由于margin的方让该单元格的右和下边框被覆盖,所以高亮看不到) 把该单元格右侧和下侧的单元格的左和上边框透明度设为0(脑子已经半浆糊了)问:下面单元格不难找,那你要怎么选择到该单元格的右侧单元格呢?
答:(艰难思索)那就换种方法,把所有单元格左和上边框设为透明,然后第一行和第一列单独设回来。这题感觉自己说了个很笨的方法,肯定有很多更好的实现方法
4. 讲讲性能优化,能实际实现的答:少用js操作Dom,统一修改Dom,少用闭包,改样式能用css不用js,css中不用算术表达式等等
问:这都是代码方面的是吧,那网络方面呢?答:(不懂、不了解)用http2肯定快之后的提问面试官都是基于我的回答去问的,才发现他竟然做了笔记,,,牛(问了挺多零碎的,记不住太多)
- 用js操作Dom,怎么知道Dom已经操作好了
- 少用闭包我不理解,你看构建工具啥的用的都是闭包,这个你怎么理解的(我背的啊,上哪理解去。开始记忆搜索:我是指比如一个功能,能用块级作用域实现也能用闭包实现,那就最好不用闭包。算过关了
- http2为什么快
5. (也是基于上一题的)html中link一个很大的css文件,导致加载很慢。那用户看到的浏览器加载过程是怎样的,是一直空白么?还是先出现个骨架?还是什么?如果中间有js语句,会怎么样?页面加载会终止么?答: 我.......
❤️欢迎大家关注我,文章小白上路,你们是我继续整理分享的动力❤️❤️公众号: 前端别搞我❤️❤️关注+点赞收藏+评论+分享❤️,手留余香,谢谢🙏大家。
转载自:https://segmentfault.com/a/1190000041420148