前言
我只想面个CV工程师,面试官偏偏让我挑战造火箭工程师,加上今年这个情况更是前后两男,但再难苟且的生活还要继续,饭碗还是要继续找的。在最近的面试中我一直在总结,每次面试回来也都会复盘,下面是我这几天遇到的面试知识点。但今天主题是标题所写的66条JavaScript知识点,由浅入深,整理了一周,每(zhěng)天(lǐ)整(bù)理( yì)10条( qiú)左(diǎn)右(zàn), 希望对正在找工作的小伙伴有点帮助,文中如有表述不对,还请指出。
HTML&CSS:
- 浏览器内核
- 盒模型、flex布局、两/三栏布局、水平/垂直居中;
- BFC、清除浮动;
- css3动画、H5新特性。
JavaScript:
- 继承、原型链、this指向、设计模式、call, apply, bind,;
- new实现、防抖节流、let, var, const 区别、暂时性死区、event、loop;
- promise使用及实现、promise并行执行和顺序执行;
- async/await的优缺点;
- 闭包、垃圾回收和内存泄漏、数组方法、数组乱序, 数组扁平化、事件委托、事件监听、事件模型
Vue:
- vue数据双向绑定原理;
- vue computed原理、computed和watch的区别;
- vue编译器结构图、生命周期、vue组件通信;
- mvvm模式、mvc模式理解;
- vue dom diff、vuex、vue-router
网络:
- HTTP1, HTTP2, HTTPS、常见的http状态码;
- 浏览从输入网址到回车发生了什么;
- 前端安全(CSRF、XSS)
- 前端跨域、浏览器缓存、cookie, session, token, localstorage, sessionstorage;
- TCP连接(三次握手, 四次挥手)
性能相关
- 图片优化的方式
- 500 张图片,如何实现预加载优化
- 懒加载具体实现
- 减少http请求的方式
- webpack如何配置大型项目
另外更全面的面试题集我也在整理中,先给个预告图:

下面进入正题:
- 1. 介绍一下 js 的数据类型有哪些,值是如何存储的
- 2. && 、 ||和!! 运算符分别能做什么
- 3. js的数据类型的转换
- 4. JS中数据类型的判断( typeof,instanceof,constructor,Object.prototype.toString.call()
- 5. 介绍 js 有哪些内置对象?
- 6. undefined 与 undeclared 的区别?
- 7. null 和 undefined 的区别?
- 8. {} 和 [] 的 valueOf 和 toString 的结果是什么?
- 9. Javascript 的作用域和作用域链?
- 10. javascript 创建对象的几种方式?
- 11. JavaScript 继承的几种实现方式?
- 12. 寄生式组合继承的实现?
- 13. 谈谈你对this、call、apply和bind的理解
- 14. JavaScript 原型,原型链? 有什么特点?
- 15. js 获取原型的方法?
- 16. 什么是闭包,为什么要用它?
- 17. 什么是 DOM 和 BOM?
- 18. 三种事件模型是什么?
- 19. 事件委托是什么?
- 20. 什么是事件传播?
- 21. 什么是事件捕获?
- 22. 什么是事件冒泡?
- 23. DOM 操作——怎样添加、移除、移动、复制、创建和查找节点?
- 24. js数组和对象有哪些原生方法,列举一下
- 25. 常用的正则表达式
- 26. Ajax 是什么? 如何创建一个 Ajax?
- 27. js 延迟加载的方式有哪些?
- 28. 谈谈你对模块化开发的理解?
- 29. js 的几种模块规范?
- 30. AMD和CMD 规范的区别?
- 31. ES6 模块与 CommonJS 模块、AMD、CMD 的差异。
- 32. requireJS的核心原理是什么?
- 33. 谈谈JS的运行机制
- 34. arguments 的对象是什么?
- 35. 为什么在调用这个函数时,代码中的b会变成一个全局变量?
- 36.简单介绍一下V8引擎的垃圾回收机制
- 37. 哪些操作会造成内存泄漏?
- 38. ECMAScript 是什么?
- 39. ECMAScript 2015(ES6)有哪些新特性?
- ref=
"https://zhuanlan.zhihu.com/p/151811753/edit#40-%60var%60,%60let%60%E5%92%8C%60const%60%E7%9A%84%E5%8C%BA%E5%88%AB%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F">40. var,let和const的区别是什么? - 41. 什么是箭头函数?
- 42. 什么是类?
- 43. 什么是模板字符串?
- 44. 什么是对象解构?
- f="https://zhuanlan.zhihu.com/p/151811753/edit#45-%E4%BB%80%E4%B9%88%E6%98%AF%60Set%60%E5%AF%B9%E8%B1%A1%EF%BC%8C%E5%AE%83%E6%98%AF%E5%A6%82%E4%BD%95%E5%B7%A5%E4%BD%9C%E7%9A%84%EF%BC%9F">45 什么是Set对象,它是如何工作的?
- 46. 什么是Proxy?
———— 高能预警分割线⚡—————
- 47. 写一个通用的事件侦听器函数,为什么要用它?
- 48. 什么是函数式编程? JavaScript的哪些特性使其成为函数式语言的候选语言?
- 49. 什么是高阶函数?
- 50. 为什么函数被称为一等公民?
- "https://zhuanlan.zhihu.com/p/151811753/edit#51-%E6%89%8B%E5%8A%A8%E5%AE%9E%E7%8E%B0%60Array.prototype.map%E6%96%B9%E6%B3%95%60">51. 手动实现Array.prototype.map 方法
- "https://zhuanlan.zhihu.com/p/151811753/edit#52-%E6%89%8B%E5%8A%A8%E5%AE%9E%E7%8E%B0%60Array.prototype.filter%60%E6%96%B9%E6%B3%95">52. 手动实现Array.prototype.filter方法
- "https://zhuanlan.zhihu.com/p/151811753/edit#53-%E6%89%8B%E5%8A%A8%E5%AE%9E%E7%8E%B0%60Array.prototype.reduce%60%E6%96%B9%E6%B3%95">53. 手动实现Array.prototype.reduce方法
- 54. js的深浅拷贝
- 55. 手写call、apply及bind函数
- 56. 函数柯里化的实现
- 57. js模拟new操作符的实现
- 58. 什么是回调函数?回调函数有什么缺点
- 59. Promise是什么,可以手写实现一下吗?
- ref="https://zhuanlan.zhihu.com/p/151811753/edit#60-%60Iterator%60%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%8C%E6%9C%89%E4%BB%80%E4%B9%88%E4%BD%9C%E7%94%A8%EF%BC%9F">60. Iterator是什么,有什么作用?
- ref="https://zhuanlan.zhihu.com/p/151811753/edit#61-%60Generator%60%E5%87%BD%E6%95%B0%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%8C%E6%9C%89%E4%BB%80%E4%B9%88%E4%BD%9C%E7%94%A8%EF%BC%9F">61. Generator函数是什么,有什么作用?
- "https://zhuanlan.zhihu.com/p/151811753/edit#62-%E4%BB%80%E4%B9%88%E6%98%AF%60async/await%60%E5%8F%8A%E5%85%B6%E5%A6%82%E4%BD%95%E5%B7%A5%E4%BD%9C,%E6%9C%89%E4%BB%80%E4%B9%88%E4%BC%98%E7%BC%BA%E7%82%B9%EF%BC%9F">62. 什么是 async/await及其如何工作,有什么优缺点?
- 63. instanceof的原理是什么,如何实现
- 64. js的节流与防抖
- 65. 什么是设计模式?
- 66. 9种前端常见的设计模式
作者:Jake Zhang
链接:https://juejin.im/post/5ef8377f6fb9a07e693a6061
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
如果对您有帮助,就请点一个赞吧,让更多的人看到!

1006

被折叠的 条评论
为什么被折叠?



