01如何讓事件先冒泡後捕獲?
在DOM標準事件模型中,是先捕獲後冒泡。但是如果要實現先冒泡後捕獲的效果,對於同一個事件,監聽捕獲和冒泡,分別對應相應的處理函數,監聽到捕獲事件,先暫緩執行,直到冒泡事件被捕獲後再執行捕獲之間。
02JS的語言特性有哪些?
運行在客戶端瀏覽器上;
不用預編譯,直接解析執行代碼;
是弱類型語言,較為靈活;
與作業系統無關,跨平臺的語言;
腳本語言、解釋性語言
03Js基本數據類型有哪些?
基本數據類型:undefined、null、number、boolean、string、symbol
04js跨域的原理是什麼?
跨域,是指瀏覽器不能執行其他網站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器對JavaScript實施的安全限制,那麼只要協議、域名、埠有任何一個不同,都被當作是不同的域。跨域原理,即是通過各種方式,避開瀏覽器的安全限制。
05Angular JS 雙向綁定原理?
Angular將雙向綁定轉換為一堆watch表達式,然後遞歸這些表達式檢查是否發生過變化,如果變了則執行相應的watcher函數(指view上的指令,如ng-bind,ng-show等或是{{}})。等到model中的值不再發生變化,也就不會再有watcher被觸發,一個完整的digest循環就完成了。
Angular中在view上聲明的事件指令,如:ng-click、ng-change等,會將瀏覽器的事件轉發給$scope上相應的model的響應函數。等待相應函數改變model,緊接著觸發髒檢查機制刷新view。
watch表達式:可以是一個函數、可以是$scope上的一個屬性名,也可以是一個字符串形式的表達式。$watch函數所監聽的對象叫做watch表達式。watcher函數:指在view上的指令(ngBind,ngShow、ngHide等)以及{{}}表達式,他們所註冊的函數。每一個watcher對象都包括:監聽函數,上次變化的值,獲取監聽表達式的方法以及監聽表達式,最後還包括是否需要使用深度對比(angular.equals())
06暫停死區是什麼?
在代碼塊內,使用let、const命令聲明變量之前,該變量都是不可用的。這在語法上,稱為「暫時性死區」
以上就是小科今天整理提供的Web前端開發面試題,希望為Web前端同學提供了有用的面試素材,以後小科每日均會提供Python、Web及MySQL資料庫相關的習題。學習沒有捷徑,希望大家都能少走一些彎路,順利找到工作!