1. 函数传参是值传递, 还是引用传递? 2. 说说你对作用域与作用域链的理解 3. 说说变量提升与函数提升 4. 区分执行函数定义与执行函数 5. 说说你对闭包的理解 6. 如何判断函数中的this? 7. 如何改变函数中的this? 8. 说说原型与原型链 9. instanceof的内部原理 9. instanceof的自定义实现 10. 编码实现继承 11. 说说面向对象的三大特征 12. 说说JS的垃圾回收机制 13. 区别一下内存溢出与内存泄漏 14. 区别一下同步与异步 15. 说一下JS的事件循环机制 16. 说说ES6的promise 17. 说说ES6中Promise的then方法 18. 区别一下Promise的all方法与race方法 19. 说说async与await的理解和使用 20. var 、 let 、const之间的区别 21. 箭头函数的特点 22. ES6的模块化语法 23. 说出几个ES6常用新语法 24. 说说事件冒泡与事件委托 25. HTTP请求的常用响应状态码 26. 对原生ajax进行简单的封装 27. 说说你对跨域问题的理解和解决办法 28. 说说你知道的ajax跨域解决方案 29. 说说你项目中的axios的二次封装 30. 说说axios的整体执行流程 31. 从输入url到渲染出页面的整个过程 32. 说说前台数据存储 33. 自定义call和bind 34. 区别函数节流与防抖 35. 自定义函数节流与防抖 36. 自定义数组扁平化 37. 自定义new 38. 深拷贝 39. 实现数组的冒泡排序和sort排序 40. 说说重排(回流)与重绘 41. 区别HTTP与HTTPS