網易金融前端實習生電話面試整理

狸xun尋發表於2018-03-31

大廠前端面試考什麼? | 掘金技術徵文

前端面試題總結——綜合問題

1.CSS作用

CSS:層疊樣式表單,渲染HTML元素標籤的樣式。通過使用CSS樣式設計頁面的格式,可將頁面的內容與表現形式分離。不僅可使維護站點的外觀更加容易,而且還可以使HTML文件程式碼更加簡練,縮短瀏覽器的載入時間。

2.CSS3動畫

CSS動畫簡介

animation:

@keyframes規則用於建立動畫,在 @keyframes 中規定CSS 樣式,就能建立由當前樣式逐漸改為新樣式的動畫效果。

在 @keyframes 中建立動畫時,請把它捆綁到某個選擇器,否則不會產生動畫效果。

通過規定至少以下兩項 CSS3 動畫屬性,即可將動畫繫結到選擇器:

  • 規定動畫的名稱 animation-name
  • 規定動畫的時長 animation-duration

用百分比來規定變化發生的時間,或用關鍵詞 "from" 和 "to",等同於 0% 和 100%。

0% 是動畫的開始,100% 是動畫的完成。

屬性描述
@keyframes規定動畫。
animation所有動畫屬性的簡寫屬性,除了 animation-play-state 屬性。
animation-name規定 @keyframes 動畫的名稱。
animation-duration規定動畫完成一個週期所花費的秒或毫秒。預設是 0。
animation-timing-function規定動畫的速度曲線。預設是 "ease"。
animation-delay規定動畫何時開始。預設是 0。
animation-iteration-count規定動畫被播放的次數。預設是 1。
animation-direction規定動畫是否在下一週期逆向地播放。預設是 "normal"。
animation-play-state規定動畫是否正在執行或暫停。預設是 "running"。
animation-fill-mode規定物件動畫時間之外的狀態。

CSS的transition和animation有何區別

transition和animation都可以作動效。

transition

是過渡,由一個狀態過渡到另一個狀態,比如高度100px過渡到200px;transition的作用在於,指定狀態變化所需要的時間。

(1)transition需要事件觸發,所以沒法在網頁載入時自動發生。

(2)transition是一次性的,不能重複發生,除非一再觸發。

(3)transition只能定義開始狀態和結束狀態,不能定義中間狀態,也就是說只有兩個狀態。

(4)一條transition規則,只能定義一個屬性的變化,不能涉及多個屬性。

animation

是動畫,animation有幀的概念,可以設定關鍵幀keyframe,一個動畫可以由多個狀態過渡組成。

3.選擇器權重及優先順序 

權重分為四級,權重值越大優先順序越高。

1.內聯樣式。如:style=“xxx”,權值為1000

2.ID選擇器。如:#content,權值為100

3.類,偽類和屬性選擇器。如:.content,:hover,[attribute],權值為10

4.元素選擇器,偽元素選擇器。如:div,p,權值為1

注意:通用選擇器(*),子選擇器(>),相鄰同胞選擇器(+)並不在四個等級中,權值為0

權重值越大優先順序越高,相同權值後定義覆蓋前面定義的

!important  強制重定義,提升優先順序。

不要用標籤名限制 class 規則,如div.info這樣的寫法,其實我們可以直接寫為.info,從右到左解析的原因可以知道為什麼其低效。

4.JQuery機制 

前端知識點總結——JQ(上)

前端知識點總結——JQ(下)

5.AJAX

通過在後臺與伺服器進行少量資料交換,AJAX 可以使網頁實現非同步更新。AJAX是一種在無需重新載入整個網頁的情況下,能夠更新部分網頁的情況。

1.建立一個ajax物件,var ajax = new XMLHttpRequest();

2.連線伺服器,ajax.open(method,url,true );   非同步傳輸(多個事情一起做)

3.傳送請求,ajax.send( );

4.接受返回,處理資料。

readystate(瀏覽器伺服器進行到哪一步了)

0:(未初始化)未呼叫open方法

1:(載入)已呼叫send方法,正在傳送求情

2:(載入完成)send完成

3:(解析)正在解析響應內容

4:(完成)響應內容解析完成

status HTTP狀態碼

200:成功

301:永久重定向

302:臨時重定向

304:資源找到,但不符合條件

404:找不到資源

500:伺服器端出錯

6.HTTP協議 

HTTP協議詳解

HTTP協議是超文字傳輸協議

HTTP是一個基於TCP/IP通訊協議來傳遞資料(HTML 檔案, 圖片檔案, 查詢結果等)。

HTTP協議工作於客戶端-服務端架構為上。瀏覽器作為HTTP客戶端通過URL向HTTP服務端即WEB伺服器傳送所有請求。Web伺服器根據接收到的請求後,向客戶端傳送響應資訊。

1.輸入地址

2.瀏覽器通過DNS伺服器查詢域名的IP地址(DNS查詢過程:瀏覽器快取->系統快取->路由器快取)

3.瀏覽器向web伺服器傳送一個HTTP請求

4.伺服器永久重定向響應(從http://example.com到http://www.example.com)

5.瀏覽器跟蹤重定向地址

6.伺服器處理請求

7.服務返回一個HTTP響應

8.瀏覽器顯示HTML

9.瀏覽器傳送請求獲取嵌在HTML中的資源(如圖片,音訊,視訊,css,js等)

10.瀏覽器傳送非同步請求


 7.原型 

JS進階(1) —— 人人都能懂的建構函式

JS進階(2):人人都能懂的原型物件

 8.閉包

 9.Promise  

es6—Promise

10.回撥機制  

JS—回撥函式

11.ES6 Class 繼承 與原生JS繼承區別

小談ES6中的class與繼承

在ES5中,繼承實質上是子類先建立屬於自己的this,然後再將父類的方法新增到this(也就是使用Parent.apply(this)的方式)或者this.__proto__(即Child.prototype=new Parent())上。

而在ES6中,則是先建立父類的例項物件this,然後再用子類的建構函式修改this

12.跨域

允許跨域請求: link, img, script
不允許跨域: xhr物件 (ajax請求)
變通: script 需要伺服器返回一段可執行的js語句

伺服器應該返回包含資料的一條可執行的js語句複製程式碼

如何實現?
客戶端實現: JSONP (填充式json)

1. 在客戶端定義處理函式

2. 在按鈕單擊事件中,動態建立script元素,src設定為服務端地址,並攜帶請求引數callback=函式名(jsonp不支援POST請求,因為script只支援get請求)

3. 在伺服器端,接收請求引數中的函式名,將函式名和要返回的資料,拼接為一條可執行的js語句

4. 客戶端script,請求服務端php,獲得可執行語句,自動呼叫提前定義好的函式處理資料

5. 在客戶端處理函式結尾,要動態刪除script

伺服器端代理:新增http請求頭

CORS


相關文章