js面試題系列,不斷更新中,力爭爲廣大前端就業者更好的應對面試,也增長本身做爲一名前端的技術常識。javascript
一、建立一個空對象,而且 this 變量引用該對象,同時還繼承了該函數的原型。css
二、屬性和方法被加入到 this 引用的對象中。前端
三、新建立的對象由 this 所引用,而且最後隱式的返回 this 。java
var obj = {};
obj.__proto__ = Base.prototype;
Base.call(obj);
複製代碼
1 defer(等dom加載以後加載)和async(異步加載),僅能夠在支持的瀏覽器進行使用面試
2 動態建立DOM方式(建立script,插入到DOM中,加載完畢後callBack瀏覽器
3 按需異步載入js安全
內存泄漏指任何對象在您再也不擁有或須要它以後仍然存在。 垃圾回收器按期掃描對象,並計算引用了每一個對象的其餘對象的數量。若是一個對象的引用數量爲 0(沒有其餘對象引用過該對象),或對該對象的唯一引用是循環的,那麼該對象的內存便可回收。 setTimeout 的第一個參數使用字符串而非函數的話,會引起內存泄漏。 閉包、控制檯日誌、循環(在兩個對象彼此引用且彼此保留時,就會產生一個循環)bash
1,工廠模式服務器
2,構造函數模式閉包
3,原型模式
4,混合構造函數和原型模式
5,動態原型模式
6,寄生構造函數模式
7,穩妥構造函數模式
1,原型鏈繼承
2,借用構造函數繼承
3,組合繼承(原型+借用構造)
4,原型式繼承
5,寄生式繼承
6,寄生組合式繼承
CommonJS是服務器端模塊的規範,Node.js採用了這個規範。CommonJS規範加載模塊是同步的,也就是說,只有加載完成,才能執行後面的操做。AMD規範則是非同步加載模塊,容許指定回調函數。 AMD推薦的風格經過返回一個對象作爲模塊對象,CommonJS的風格經過對module.exports或exports的屬性賦值來達到暴露模塊對象的目的
Angular它採用雙向綁定(data-binding):View的變更,自動反映在 ViewModel,反之亦然。核心就是viewModel的設定,能夠實現響應的數據變化 組成部分Model、View、ViewModel View:UI界面 ViewModel:它是View的抽象,負責View與Model之間信息轉換,將View的Command傳送到Model; Model:數據訪問層
事件代理(Event Delegation),又稱之爲事件委託。是 JavaScript 中經常使用綁定事件的經常使用技巧。顧名思義,「事件代理」便是把本來須要綁定的事件委託給父元素,讓父元素擔當事件監聽的職務。事件代理的原理是DOM元素的事件冒泡。使用事件代理的好處是能夠提升性能。
js的執行引擎和渲染引擎是同步的,因此在js代碼執行操做的時候渲染的部分不會發生變化,在操做完全部的樣式以後纔會在頁面上進行樣式的渲染。這也是爲何若是有js代碼的下載和執行會阻塞頁面的渲染的緣由。