第一节问题思考.txt 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. 慕课网课程-面试题:
  2. 1. typeof 能判断哪些类型?
  3. 考点:JS基本类型
  4. 答案:boolean number string object undefined function
  5. 2. 何时使用=== 何时使用==
  6. 考点:JS数据类型判断、强制类型转换
  7. 问题:值类型、引用类型区别
  8. 答案:===是在数据类型相同的情况下再判断左右的值是否相等,==不考虑数据类型,数据类型不相同时,会自动进行数据类型转换
  9. 3. window.onload 和 DOMContentLoaded的区别
  10. 考点:网页渲染和加载的顺序
  11. 问题:为什么CSS写在头部,JS写在尾部
  12. 答案:window.onload是在页面元素加载完后触发,DOMContentLoaded是页面骨架加载完后触发
  13. 4. JS创建10个a标签,点击的时候弹出对应的序号
  14. 考点:JS作用域
  15. 问题:闭包
  16. 答案:
  17. for(var i = 1; i <= 10; i++){
  18. var a = document.createElement('a');
  19. a.href = "javascript:;";
  20. a.innerHTML = '链接i='+i;
  21. box.appendChild(a);
  22. (function (i){
  23. a.addEventListener('click', function (){
  24. alert(i);
  25. })
  26. })(i);
  27. }
  28. 5. 手写节流throttle、防抖debounce
  29. 考点:页面性能体验优化,节流是为了防止用户没看到效果前一直不停的点,导致事件一直触发。
  30. 问题:还有其他性能体验优化
  31. 答案:
  32. 节流
  33. var btn = document.getElementById(“btn”)
  34. var flag = false;
  35. btn.addEventListener(‘click’, function () {
  36. if(!flag){
  37. // TODO
  38. animate({},function () {
  39. flag = false;
  40. })
  41. }
  42. })
  43. 6. Promise解决了什么问题
  44. 考点:异步、JS单线程、事件循环。JS主线程先执行同步代码、同步代码执行完后,JS引擎会去异步队列中查看是否有可执行的代码,如果有,则加入到主线程队列中执行。如此循环。
  45. 问题:定时器等等
  46. 答案:解决了异步问题,使得一些耗时较长的代码不会阻碍主线程代码的执行,在异步代码执行完毕的时候,会触发resolved方法,执行失败的时候,执行rejected方法。