今年出現頻率較高的前端面試題及答案——js篇,屌絲逆襲必備

工作難找,前端工程師工作更難找,大家好,我是左耳東,下面開始梳理一下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 ,反之亦然。

養養眼