JavaScript面试题

1、解释下事件代理。

2、解释下 JavaScript 中 this 是如何工作的。

3、解释下原型继承的原理。

4、你是如何测试 JavaScript 代码的?

5、描述以下的区别:null,undefined ?该如何检测它们?

6、什么是闭包,如何使用它,为什么要使用它?

7、请举出一个匿名函数的典型用例?

8、解释 “JavaScript 模块模式” 以及你在何时使用它。

9、 你是如何组织自己的代码?是使用模块模式,还是使用经典继承的方法?

10 、请指出 JavaScript 宿主对象和原生对象的区别?

11、.call 和 .apply 的区别是什么?

12、请解释 Function.prototype.bind 的作用?

13、你何时优化自己的代码?

14、你能解释一下 JavaScript 中的继承是如何工作的吗?

15、在什么时候你会使用 document.write()?

请尽可能详尽的解释 AJAX 的工作原理。

16、请解释 JSONP 的工作原理,以及它为什么不是真正的 AJAX。

17、你使用过 JavaScript 模板系统吗?如有使用过,请谈谈你都使用过哪些库。

18、请解释变量声明提升。

19、请描述下事件冒泡机制。

20、"attribute" 和 "property" 的区别是什么?

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

22、请指出 document load 和 document ready 两个事件的区别。

23、== 和 === 有什么不同?

24、你如何从浏览器的 URL 中获取查询字符串参数。

25、请解释一下 JavaScript 的同源策略

26、请描述一下 JavaScript 的继承模式。

27、描述一种 JavaScript 中实现 memoization(避免重复运算)的策略。

28、什么是三元表达式?“三元”表示什么意思?

29、函数的参数元是什么?

30、什么是 use strict; ? 使用它的好处和坏处分别是什么?


JavaScript面试题