文章寫於 2016 年 8 月,舊的博客不維護了,一些文章直接遷移到這邊來。本文爲當時記錄的第四篇,也是最後一篇,是百度的三場面試,全是一天完成。javascript
(啪啪啪,以前寫完文章寫了一半不知怎麼就忘記繼續發=。= 如今是8/2,文章大概是一個多月前寫的)
終於到最後一篇啦。雖然技術面試早就結束了,不過仍是前個星期接到最後一家的Hr的電話,由於已經肯定去哪一家了因此就拒絕了。至此全部的面試都結束啦~結果仍是挺不錯的。css
總結一下最後一家的面試,電面,週日早上10點開始,每輪40分鐘左右,最後一面出了點意外花了一個多小時。隔一個小時左右下一輪,2點半結束全部技術面。效率過高啦,並且面試官很nice,贊。html
聲音比較小並且有點雜,下次應該和麪試官說提升一下音量,否則一些問題都聽不清楚。前端
印象中仍是不少面試官都會問我這個問題,可是說實話,當時以爲難的而後解決了的如今確定不難了,那些難的沒解決的說出來又以爲很差(沒有去解決問題),以前面試的時候提過在移動端圖片的上傳的處理,其實主要是比較繞,並且有兼容問題,涉及到一些dataUrl,canvas和formdata的轉換,說實話也不怎麼難,可是由於時間久了,大半年前的東西細節基本忘記了,說出來反而容易被面試官問倒,因此說了一次就不想再說了。 而後就講了移動端的PC端的區別,就是和以前說的差很少。java
重構方面的問題,優先級排序其實有點不清楚幾個嵌套時的優先級,筆試題的時候遇到了,靠猜。基本的優先級:
!important > 內聯 > id選擇器 > 類選擇器 > 標籤選擇器 > 通配符選擇器
developer.mozilla.org/en-US/docs/…
不知道一些文章看到的每一個選擇器的權重是哪裏看來的=。=
當時沒有講出現的位置和嵌套的影響jquery
這裏有太多東西能夠講了,不過當時恰好複習了DNS查找,就着重講了這部分。而後就是基本的一個網頁請求的過程,沒有太深刻各個部分好比網絡層TCP/IP,服務器怎麼拿到請求的資源而後返回,頁面渲染的過程。面試官說能講多少講多少,可是當時有點緊張就講的不是不少了。DNS查找就包括遞歸查找和迭代查找啦。webpack
都是異步加載,可是在加載順序上有區別。(錯了) AMD:Asynchronous Module Definition,中文名是異步模塊定義的意思。它是一個在瀏覽器端模塊化開發的規範,RequireJS支持;
CMD:Common Module Definition 通用模塊定義。Seajs。
最明顯的區別就是在模塊定義時對依賴的處理不一樣
AMD推崇依賴前置,在定義模塊的時候就要聲明其依賴的模塊
CMD推崇就近依賴,只有在用到某個模塊的時候再去require
AMD和CMD最大的區別是對依賴模塊的執行時機處理不一樣,注意不是加載的時機或者方式不一樣 後面看了文章發現說錯了,準確的說是執行時機不一樣。
www.zhihu.com/question/20…
如今都用webpack和ES6了web
當時說了事件的原理,三個階段,爲何會用live。可是不知道live和delegate的區別。 kb.cnblogs.com/page/94469/
文章說的挺清楚了,live是須要監聽的元素進行調用,而後jquery會將事件綁定到document節點上,根據事件類型和選擇器進行觸發事件
delegate是容器元素進行調用,就和on同樣啦,不過參數順序有區別。面試
 $('a').live('click', function() { alert("That tickles!") });
$('#container').delegate('a', 'click', function() { alert("That tickles!") });
$('#container').on('click', 'a', function () { alert("That tickles!")});
複製代碼
live比delegate好,live須要包裝一個元素後,調用live時才綁定事件到document上;delegate直接找到容器元素。
雖然如今都是用on來作了。canvas
剛開始是面試官問我一個例子:新浪微博,發佈微博和展現微博,怎麼作到各個模塊的解耦。剛開始沒有提示MVC,本身有一點點MVC的思想,可是說的有點亂,估計面試官不滿意,而後就讓我說MVC,說完噼裏啪啦一頓後讓我再複述一遍。就比較清晰了(說MVC的時候本身在紙上作了筆記)。面試官太Nice啦!
都是存儲。說完區別後問我另外一個場景:使用localstorage緩存js文件,簡述方案解決緩存和更新的問題
跨域的解決方案,頁面的一些優化方案,webview和html以前怎麼相互通訊,HTTP協議,get和post的區別,幾個經常使用的狀態碼
給兩個具體場景說方案:
簡歷寫了angular:雙向綁定的原理。angular適合用在什麼場景,用一個例子說明jq和ng的實現的過程和不一樣點,我用了購物車的例子,而後問爲何須要雙向綁定,有什麼好處,有什麼缺點,怎麼解決。
仍是根據簡歷:前端數據渲染方案,jq,模板引擎,MVVM,這三種方案的具體實現過程,各自的優點和劣勢,分別適合用在什麼場景
HTTP協議,盒模型是什麼,float和absolute的區別,三種方案說水平垂直居中。
數組去重怎麼作,多維數組呢
一個需求:圖片能夠拖動,當拖動釋放的時候根據釋放的速度計算圖片繼續滑動的速度(釋放的一瞬間越快,圖片繼續劃得越遠),說方案
爲何學習前端,學了一年都是怎麼學的。讀了什麼書,上什麼論壇,從哪些渠道獲取知識。 做爲一名學生和做爲一名實習生,對一個產品的見解,瞭解,完成的過程當中要怎麼作。 技術問了3個開放問題 pc和mobile的適配 前端性能優化 前端安全。根據我說的簡單深刻。爲何要用雪碧圖,爲何要減小請求數 實習時間安排,介紹了部門,有沒有什麼問題想問他。感受三面基本都差很少