普通本科毕业的我通过内推有幸参加了快手校招前端实习生面试,虽然结果不是很理想,但是成长很大。特此总结分享给各位。

1.介绍简历上的项目

简单介绍项目内容即可。
面试首个问题一般都比较自由,可以通过该问题缓解自己的紧张情绪。

2.CSS样式覆盖问题

div {width:200px ;height: 200px;}
.classA {background-color:blue}
.classB {background-color:red}
<div class="classA classB"></div>

结果为红色

3.position取值及区别

static 默认    静态布局,默认文档流中,非定位元素relative     定位元素(相对定位)1) 没有脱离文档流2) 参照点为当前元素原本的位置absolute    定位元素(绝对定位)1) 脱离了文档流2) 参照距离当前元素最近的父定位元素,如果所有的父元素都没有定位元素,参照浏览器视口fixed       定位元素(固定定位)1) 脱离了文档流2) 参照浏览器视口

4.如何解决兄弟级外边距问题

e…这个问题属实还挺坑的,包括网上搜索都是在探讨父子级外边距问题,至于如何解决兄弟级外边距问题很少有提到。

5.reflow(回流)和repaint(重绘)问题

reflow:几乎是无法避免的。现在界面上流行的一些效果,比如树状目录的折叠、展开(实质上是元素的显 示与隐藏)等,都将引起浏览器的 reflow。鼠标滑过、点击……只要这些行为引起了页面上某些元素的占位面积、定位方式、边距等属性的变化,都会引起它内部、周围甚至整个页面的重新渲染。通常我们都无法预估浏览器到底会 reflow 哪一部分的代码,它们都彼此相互影响着。
repaint:如果只是改变某个元素的背景色、文字颜色、边框颜色等等不影响它周围或内部布局的属性,将只会引起浏览器 repaint(重绘)下面情况会导致reflow发生1:改变窗口大小2:改变文字大小3:内容的改变,如用户在输入框中敲字4:激活伪类,如:hover5:操作class属性6:脚本操作DOM7:计算offsetWidth和offsetHeight8:设置style属性

6.var/let区别

这两个声明区别其实很好说清楚,但是面试官是放在具体的代码块里,结合闭包等各种问题让说出具体结果。整段代码30多行下来还是有点蒙了,最终这道题也over了。

特别注意这块儿的:var函数作用域,闭包;let的块作用域,暂时性死区等问题。

7.setTimeout与Promise结合实现以及底层机制

作为21年应届生的我回答这个问题属实太艰难,结合实现说出实现结果还可以,但是问到具体的底层实现机制(涉及到JS宏任务,微任务,单线程完成异步等问题)属实是太难了。

附百度相关内容:

两者都是异步,异步都会保存在任务队列中
主线程从任务队列中读取事件,不断循环,这种运行机制又称为Event Loop(事件循环)
异步任务有宏任务和微任务
宏任务优先级:主代码块 > setImmediate > MessageChannel > setTimeout / setInterval
微任务优先级:process.nextTick > Promise > MutationObserver执行顺序:第一个宏任务(主程序)执行完,执行全部的微任务(promise),再执行下一个宏任务(setTimeout)

8.字符串拼接效率问题

这道题也是直接over

+的处理机制是:新建一个临时字符串,将新字符串赋值为a+b,然后返回这个临新字符串并同时销毁原始字符串,所以字符串连接效率较低。ie7+后已解决在旧浏览器(ie7-)下用 join 会更高效。
在现代浏览器,尽量用"+",更高效。
当然,在少数现代浏览器里 “+” 不一定会比 join 快(如,safari 5.0.5,opera 11.10)
本身是字符串数组的,直接 join 会更好。
在"+"与concat之间,当然是优选使用"+",方便又直观又高效。

9.手撕一道代码题:写出一个方法来实现每次调用都能生成一个合法的CSS颜色

涉及到进制转换问题,使用toString()方法

总结
大公司相对而言对基础要求更加严格,甚至要求了解底层实现机制以及一些效率问题,对于大多数本科应届生还是有一定难度的。

快手秋招前端实习生一面面经相关推荐

  1. 2019 秋招前端面试总结

    总结一下自己的秋招面试题,希望能对自己什么部分有所欠缺有更好的认识,并能给其他人提供经验,帮助找工作的人查缺补漏. CVTE 前端一面 菜逼的腾讯前端一面 顺丰科技前端视频一面 CVTE 前端视频二面 ...

  2. 2021年秋招前端复盘

    文章目录 1.实现元素的居中 2.flex布局以及属性 3.ES6新特性 4.数组有哪些方法?map和filter的区别?for of和for in的区别? 5.js异步有哪些方式?promise和a ...

  3. html5前端实习招聘面试,2018头条春招前端实习生面试题目总结

    下午去了头条总部面试前端岗位,挂在二面...自己基础还是有些差,在这里总结一下两轮面试的题目: 一轮面试 typeof实现的原理是什么? https://ecma262.docschina.org/# ...

  4. 2023届秋招前端总结面试题

    1.讲一下你对flex布局的理解(深入些) 一.概念:flex布局是flexible box的缩写,任何一个容器都可以指定为弹性布局 二.轴线:有两条轴线,即主轴(main axis)和交叉轴(cro ...

  5. 4399公司2017秋招前端笔试试卷

    1.关于数据结构,下列描述当中,正确的是() 正确答案: C 在深度为5的满二叉树中,叶子节点的个数为32 队列,栈以及二叉树都是线性结构 算法的复杂度主要包括时间复杂度和空间复杂度 在待排序的元素序 ...

  6. 【每日面试】2021快手秋招Java开发二面

    作者:julia_ 链接:https://www.nowcoder.com/discuss/752971?source_id=discuss_experience_nctrack&channe ...

  7. 【每日面试】2021快手秋招Java开发三面

    作者:julia_ 链接:https://www.nowcoder.com/discuss/752971?source_id=discuss_experience_nctrack&channe ...

  8. 【每日面试】2021快手秋招Java开发一面

    作者:julia_ 链接:https://www.nowcoder.com/discuss/752971?source_id=discuss_experience_nctrack&channe ...

  9. JS第二次授课及字节跳动2017秋招前端工程师笔试试卷涉及知识点

    JS第二次授课 一.转义字符和字符串 1.在字符串中使用转义字符输入Unicode编码.语法:\u+四位编码. 2.在网页中使用Unicode编码:语法:&#编码:(注:这里的编码要使用十进制 ...

最新文章

  1. poj 1190(剪枝)
  2. rfcomm工具的使用方法 创建/dev/rfcomm0 并检测
  3. getSlotFromBufferLocked: unknown buffer: 0xf3d94ca0
  4. 你的通勤时间都去哪了?
  5. 裁判打分_内在的裁判偏见
  6. python中的__slots__
  7. 多所高校通知:暂缓返校
  8. 详述一则DB2 Error Code 1639和SQL State 08001案例诊断和解决方案
  9. 苹果AirPods 2预计将于3月25日发布 3月29日正式开卖
  10. oracle数据恢复
  11. oracled update_oracle中要谨慎使用update交叉更新!
  12. Java To CSharp源代码转换
  13. 关于XP系统远程桌面的一点点记录
  14. mysqlinnodb数据库损坏,全网最新
  15. 二十年间的失败软件和系统
  16. 学号20189220 2018-2019-2 《密码与安全新技术专题》第四周作业
  17. matlab稳定性实验分析,实验 控制系统稳定性分析的MATLAB实现
  18. Kubernetes初探
  19. Vulnhub靶场之symfonos:1
  20. 利用jsoup爬取百度网盘资源分享连接(多线程)

热门文章

  1. CSU多媒体技术及应用(实验)
  2. 营销内卷浪潮下,集团如何拓展边界?
  3. java springboot微信公众号接收回复消息和超过5秒被动回复消息
  4. 采用滚筒式轨道或底轮式托盘的重力式货架 海格里斯智能物流仓储案例
  5. 期权基础篇 | 什么是期权
  6. 路由器接口及连接(1)
  7. Python 花瓣网动态爬虫
  8. 简单的C语言航班管理系统
  9. 南科大于仕琪团队招聘研究助理教授,博士后
  10. Linux Shell - 脚本中自动确认需要输入确认的命令