解釋下事件代理。
解釋下 JavaScript 中 this 是如何工作的。
解釋下原型繼承的原理。
你是如何測試JavaScript代碼的?
AMD vs. CommonJS?
什么是哈希表?
解釋下為什么接下來這段代碼不是 IIFE(立即調(diào)用的函數(shù)表達(dá)式):function foo(){ }();.
要做哪些改動使它變成 IIFE?
描述以下變量的區(qū)別:null,undefined 或 undeclared?
該如何檢測它們?
什么是閉包,如何使用它,為什么要使用它?
請舉出一個匿名函數(shù)的典型用例?
解釋 “JavaScript 模塊模式” 以及你在何時使用它。
如果有提到無污染的命名空間,可以考慮加分。
如果你的模塊沒有自己的命名空間會怎么樣?
你是如何組織自己的代碼?是使用模塊模式,還是使用經(jīng)典繼承的方法?
請指出 JavaScript 宿主對象和原生對象的區(qū)別?
指出下列代碼的區(qū)別:
function Person(){}
var person = Person();
var person = new Person();
.call 和 .apply 的區(qū)別是什么?
請解釋 Function.prototype.bind 的作用?
你何時優(yōu)化自己的代碼?
你能解釋一下 JavaScript 中的繼承是如何工作的嗎?
在什么時候你會使用 document.write()?
大多數(shù)生成的廣告代碼依舊使用 document.write(),雖然這種用法會讓人很不爽。
請指出瀏覽器特性檢測,特性推斷和瀏覽器 UA 字符串嗅探的區(qū)別?
請盡可能詳盡的解釋 AJAX 的工作原理。
請解釋 JSONP 的工作原理,以及它為什么不是真正的 AJAX。
你使用過 JavaScript 模板系統(tǒng)嗎?
如有使用過,請談?wù)勀愣际褂眠^哪些庫,比如 Mustache.js,Handlebars 等等。
請解釋變量聲明提升。
請描述下事件冒泡機(jī)制。
"attribute" 和 "property" 的區(qū)別是什么?
為什么擴(kuò)展 JavaScript 內(nèi)置對象不是好的做法?
為什么擴(kuò)展 JavaScript 內(nèi)置對象是好的做法?
請指出 document load 和 document ready 兩個事件的區(qū)別。
== 和 === 有什么不同?
你如何從瀏覽器的 URL 中獲取查詢字符串參數(shù)。
請解釋一下 JavaScript 的同源策略。
請描述一下 JavaScript 的繼承模式。
如何實現(xiàn)下列代碼:
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
描述一種 JavaScript 中實現(xiàn) memoization(避免重復(fù)運算)的策略。
什么是三元表達(dá)式?“三元” 表示什么意思?
函數(shù)的參數(shù)元是什么?
什么是 "use strict"; ? 使用它的好處和壞處分別是什么?
相關(guān)導(dǎo)讀: