工作難找,前端工程師工作更難找,大家好,我是左耳東,下面開始梳理一下js面試出現頻率高的知識,希望對同行夥伴有幫助,有備無患,未雨綢繆!關注我每日更新前端知識
1、new 操作符具體幹了什麼呢?
(1)創建一個空對象,並且 this 變量引用該對象,同時還繼承了該函數的原型。
(2)屬性和方法被加入到 this 引用的對象中。
(3)新創建的對象由 this 所引用,並且最後隱式的返回 this 。
//
var obj = {};
obj.__proto__ = Base.prototype;
Base.call(obj);
2、同步和異步的區別?
同步的概念應該是來自於操作系統中關於同步的概念:不同進程為協同完成某項工作而在先後次序上調整(通過阻塞,喚醒等方式)。
同步強調的是順序性,誰先誰後;異步則不存在這種順序性。
同步:瀏覽器訪問服務器請求,用戶看得到頁面刷新,重新發請求,等請求完,頁面刷新,新內容出現,用戶看到新內容,進行下一步操作。
異步:瀏覽器訪問服務器請求,用戶正常操作,瀏覽器後端進行請求。等請求完,頁面不刷新,新內容也會出現,用戶看到新內容。
3、DOM 操作——怎樣添加、移除、移動、複製、創建和查找節點?
(1)創建新節點
createDocumentFragment() //創建一個DOM片段
createElement() //創建一個具體的元素
createTextNode() //創建一個文本節點
(2)添加、移除、替換、插入
appendChild()
removeChild()
replaceChild()
insertBefore() //在已有的子節點前插入一個新的子節點
(3)查找
getElementsByTagName() //通過標籤名稱
getElementsByName() //通過元素的Name屬性的值(IE容錯能力較強,會得到一個數組,其中包括id等於name值的)
getElementById() //通過元素Id,唯一性
4、什麼是mvc 和MVVM
MVC
MVC
模型(Model):數據保存
視圖(View):用戶界面
控制器(Controller):業務邏輯
(1)View 傳送指令到 Controller
(2)Controller 完成業務邏輯後,要求 Model 改變狀態
(3)Model 將新的數據發送到 View ,用戶得到反饋所有通信都是單向的。
MVVM
MVVM
模型(Model)
視圖(View)
視圖模型(ViewModel)
(1)各部分間都是雙向通信
(2)View 與 Model 不發生聯繫,都通過 ViewModel 傳遞
(3)View 非常薄,不部署任何業務邏輯,稱為“被動視圖”(Passive View),即沒有任何主動性;而 ViewModel 非常厚,所有邏輯都部署在那裡。
採用雙向綁定(data-binding):View 的變動,自動反映在 ViewModel ,反之亦然。
養養眼