取自:https://github.com/yangshun/front-end-interview-handbook/blob/master/Translations/Chinese/questions/javascript-questions.md

以下问题仅仅用于抽查助记。

  1. 请解释事件委托(event delegation)。

  2. 请简述JavaScript中的this。

  3. 请解释原型继承(prototypal inheritance)的工作原理。

  4. 说说你对 AMD 和 CommonJS 的了解。

  5. IIFE

  6. null、undefined和未声明变量之间有什么区别?如何检查判断这些状态值?

  7. 什么是闭包(closure),为什么使用闭包?

  8. 请说明.forEach循环和.map()循环的主要区别,它们分别在什么情况下使用?

  9. 匿名函数的典型应用场景是什么?

  10. 你如何组织自己的代码?(使用模块模式(module pattern)还是经典继承(classical inheritance)?)

  11. 宿主对象(host objects)和原生对象(native objects)的区别是什么?

  12. 下列语句有什么区别:function Person(){}、var person = Person()和var person = new Person()?

  13. .call和.apply有什么区别?

  14. 请说明Function.prototype.bind的用法。

  15. 什么时候会用到document.write()?

  16. 功能检测(feature detection)、功能推断(feature inference)和使用 UA 字符串之间有什么区别?

  17. 请尽可能详细地解释 Ajax。

  18. 使用Ajax的优缺点分别是什么?

  19. 请说明 JSONP 的工作原理,它为什么不是真正的 Ajax?

  20. 你使用过 JavaScript 模板吗?用过什么相关的库?

  21. 请解释变量提升(hosting)。

  22. 请描述事件冒泡。

  23. “attribute” 和 “property” 之间有什么区别?

  24. 为什么扩展 JavaScript 内置对象是不好的做法?

  25. document 中的load事件和DOMContentLoaded事件之间的区别是什么?

  26. ==和===的区别是什么?

  27. 请解释关于 JavaScript 的同源策略。

  28. 请使下面的语句生效:

  29. 请说明三元表达式中“三元”这个词代表什么?

  30. 什么是”use strict”;?使用它有什么优缺点?

  31. 创建一个循环,从1迭代到100,3的倍数时输出 “fizz”,5的倍数时输出 “buzz”,同时为3和5的倍数时输出 “fizzbuzz”。

  32. 为什么不要使用全局作用域?

  33. 为什么要使用load事件?这个事件有什么缺点吗?你知道一些代替方案吗,为什么使用它们?

  34. 请解释单页应用是什么,如何使其对SEO友好。

  35. 你对 Promises 及其 polyfill 的掌握程度如何?

  36. Promise代替回调函数有什么优缺点?

  37. 用转译成 JavaScript 的语言写 JavaScript 有什么优缺点?

  38. 你使用什么工具和技巧调试 JavaScript 代码?

  39. 你使用什么语句遍历对象的属性和数组的元素?

  40. 请解释可变对象和不可变对象之间的区别。

  41. 请解释同步和异步函数之间的区别。

  42. 什么是事件循环?调用堆栈和任务队列之间有什么区别?

  43. 请解释function foo() {}和var foo = function() {}之间foo的用法上的区别。

  44. 使用let、var和const创建变量有什么区别?

  45. ES6 的类和 ES5 的构造函数有什么区别?

  46. 你能给出一个使用箭头函数的例子吗,箭头函数与其他函数有什么不同?

  47. 在构造函数中使用箭头函数有什么好处?

  48. 高阶函数(higher-order)的定义是什么?

  49. 请给出一个解构(destructuring)对象或数组的例子。

  50. ES6 的模板字符串为生成字符串提供了很大的灵活性,你可以举个例子吗?

  51. 你能举出一个柯里化函数(curry function)的例子吗?它有哪些好处?

  52. 使用扩展运算符(spread)的好处是什么,它与使用剩余参数语句(rest)有什么区别?

  53. 如何在文件之间共用代码?

  54. 什么情况下会用到静态类成员?

分类: 前端

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注