开发者社区> 问答> 正文

【精品问答】前端面试手册之JavaScript篇

JavaScript基础

1. JavaScript有哪些类型?原始类型有哪几种?null是对象吗?

2. 对象类型和原始类型的不同之处?函数参数是对象会发生什么问题?

3. typeof能正确判断类型吗?instanceof能正确判断对象的原理?

4. ==和===有什么区别?

5. 如何正确判断this?箭头函数的this是什么?

6. 谈谈你对闭包的认识?

7. 什么是浅拷贝?如何实现?什么是深拷贝?如何实现?

8. 解释下变量提升?var、let及const的区别?

9. 谈谈你对原型和原型链的认识?

10. 原型如何实现继承?class如何实现继承?class本质是什么?

11. 为什么使用模块化?有哪几种方式?各有什么特点?

12. Proxy可以实现什么功能?

13. map、filter、reduce各有什么作用?

14. 并发与并行的区别?

15. 什么是回调函数?有什么缺点?如何解决回调地狱问题?

16. 你怎么理解Generator?

17. Promise 的特点是什么?有什么优缺点?

18. async及await的特点,优缺点?await的原理是什么?

19. 常用定时器函数各有什么特点?

20. 进程与线程的区别?JS单线程的好处?

21. 什么是执行栈?

22. 异步代码执行顺序?解释一下什么是Event Loop?

23. 为什么0.1+0.2!=0.3?如何解决这个问题?

24. 谈谈你对垃圾回收机制的认识?

25. JS的作用域链理解吗?

26. ES6模块与commonJS模块有什么区别?

27. 为什么会有BigInt(原始类型)的提案?

28. null与undefined的区别是什么?

29. 类型转换的规则有哪些?原理是什么?

30. 如何判断是否是数组?

31. 聊一聊如何在JavaScript中实现不可变对象?

32. 面向对象和面向过程的区别?

33. eval函数是做什么的?

34. DOM的事件模型是什么?

35. DOM的事件流是什么?

36. 什么是事件委托?

37. 常⻅的浏览器内核有哪些?

38. 浏览器的主要组成部分是什么?

39. 浏览器是如何渲染UI的?

40. 浏览器如何解析css选择器?

41. DOM Tree是如何构建的?

42. 浏览器重绘与重排的区别?

43. 如何触发重排和重绘?

44. 如何避免重绘或者重排?

45. 前端如何实现即时通讯?

46. 什么是浏览器同源策略?

47. 如何实现跨域?

JavaScript进阶

1. 实现一个Promise?

2. 手写call函数?

3. 手写apply函数?

4. 手写bind函数?

5. new的原理是什么?通过new方式创建和通过字面量创建对象有什么区别?

6. instanceof的原理是什么?

7. 实现一个防抖函数?

8. 实现一个节流函数?

展开
收起
前端问答 2019-11-24 12:00:32 4236 0
1 条回答
写回答
取消 提交回答
  • 前端问答小助手

    欢迎留言交流。

    2019-12-22 13:04:21
    赞同 3 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript函数 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载