3.12号笔试,A了三道题,3.14收到面试通知,3.15晚上面的试,整体来说问的都很基础,也没让手撕代码,面试一个小时,整体体验非常好。(但2天后收到通知,还是G了,应该我应用场景方面说的不太好,面试官感觉我没怎么用过)

问题:

自我介绍 —> 问了我对前端后端的看法 在大学了学了哪些方面的专业知识 数据结构:

  1. 了解哪些数据结构
  2. 链表和树有什么不一样
  3. 数组和队列有什么不一样,可以认为它们是类似的吗
  4. 链表和数组的读写操作哪个更快,在操作方面有什么区别

HTML 和 CSS:

  1. 在页面上实现一个点击动作,HTML可以用什么标签实现(说了button和a)
  2. 如果用div实现点击事件,鼠标经过时如何让鼠标变成小手
  3. input标签常见的类型有哪些,单选和多选的是什么
  4. 在form表单内隐藏一个input元素,能怎么实现
  5. transform:scale(),缩放属性在你项目是怎么应用的
  6. form表单内隐藏一个input元素,这个的应用场景你有了解过吗
  7. 说一下盒子模型->盒子模型的计算规则->盒子的宽度是怎么计算的->项目中用的什么盒模型,为什么选择这个
  8. 如何水平居中和垂直居中
  9. CSS伪类和伪元素的区别
  10. 写项目的时候有遇到过CSS兼容性问题吗 -> 兼容性问题产生的原因
  11. LESS 和 CSS的区别 -> CSS原生的变量和计算属性有了解过吗 -> 在CSS中计算 高度100%-10px 这种计算能做到吗 -> 使用LESS实现更换主题的一个流程是怎么样的,可以怎么实现 -> 当我们切换主题按钮点击后,我们的通过发送请求的方式切换资源还是提前下载缓存好资源去直接切换,那种比较好 -> 提前预先请求好的这样一个功能是怎么实现的,需要我们自己去开发吗(提到webpack)-> 我们的预请求功能是通过JS代码控制的还是说浏览器本身就能实现的
  12. 我们写前端页面会遇到很多的布局问题,你是怎么去排查这样的一个问题的呢

JS:

  1. JS定义变量的一个方式是什么
  2. 为什么不用var呢(let,const和var的区别)

-> 看这两行代码能不能正常执行 const arr = [1, 2, 3] arr[0] = 0 如果改成 arr = [] 呢

  1. ES6你都使用过哪些新特性和哪些API
  2. 数组常用的方法有哪些
  3. 数组排序是怎么样的,传入sort内的回调函数返回值有什么规则 -> 例如字母的排序,那内部又是怎么样的一个排序规则 -> 那么sort内回调函数的返回值是什么类型
  4. ES6的扩展运算符是深拷贝还是浅拷贝
  5. 深拷贝和浅拷贝有什么区别
  6. 如何实现深拷贝,使用JSON.parse(JSON.stringfy())时会遇到什么问题,如果传入undefined会发生什么
  7. 如何自己实现深拷贝,说一下思路,如何判断它内部是不是一个数组呢
  8. JS的闭包什么,闭包的应用场景有哪些
  9. web端存储数据能怎么实现
  10. localStroge 和 sessionStroge 有什么区别
  11. localStroge 如何设置过期时间
  12. cookie和前两个有什么不同
  13. sessionStroge 在哪些场景下可以使用
  14. 如何从一个img字符串里面取出它的src属性

webpack:

  1. 在工程化这块有什么了解吗
  2. webpack你有在项目实际使用过吗
  3. 在cli中,为什么生产的文件名会有hash字符串的后缀(webpack的缓存)
  4. 我们在哪些场景下我们的文件需要加上hash的后缀
  5. loader 和 plugin 的区别
  6. 如何判断一个功能要使用loader 实现 还是 使用plugin 实现
  7. 压缩文件为什么不使用loader实现而是使用plugin 实现 (loader不能实现)
  8. NODE_ENV 的使用场景
  9. NODE_ENV 本身是做什么事情的,在什么场景会使用(cli内规范好了,可以通过命令切换变量)

总结:

各种功能应用场景有待加强,要多去使用,在项目中使用哪些功能,还有就是要多看源码,加强对底层的理解。