早前我更新過一篇 《前端面試題》,據反饋,確實幫助到了很多去面試的新人或者換工做的菜鳥css
他們留言或者直接讚揚表示感謝,還有問答案的,不過我想說:我就是不給你答案,自有緣由,給了答案,各位還會去靠本身去找尋答案,記憶猶新嗎?前端
此次,有一週沒更了,私事比較忙,不過仍是同樣帥!因爲過了五一就是面試季,因此此次在更新一篇2017年面試會涉及到的面試題範圍,供你們提早作準備vue
上一篇引語開道webpack
這些問題都很普通 但很基礎和重要,決定了你能夠走多遠和拿到敲門磚,因此不要以爲不重要,由於這些問題都答不到70%,那麼你基本能夠和正經的重視前端的大公司說拜拜了。css3
若是你一些基本問題答對了,那麼我能夠確定的是 你面試任何公司的前端技術輪,都是沒問題的。不是我吹,是真的 基礎很重要 也很簡單均可以本身查到,作好準備便可。git
因爲我拿到過 阿里巴巴事業部 的offer(之前的事兒了),我就結合一下 淘寶前端的一些面試題(真的是隻限新人),整理一下,後面會送上面試技巧angularjs
咱們開始:github
「 CSS篇 」web
1. CSS 盒子模型,絕對定位和相對定位面試
2. 清除浮動,何時須要清除浮動,清除浮動都有哪些方法
3. 如何保持浮層水平垂直居中
4. position 和 display 的取值和各自的意思和用法
5. 樣式的層級關係,選擇器優先級,樣式衝突,以及抽離樣式模塊怎麼寫,說出思路,有無實踐經驗
6. css3動畫效果屬性,canvas、svg的區別,CSS3中新增僞類舉例
7. px和em和rem的區別,CSS中link 和@import的區別是?
5. 瞭解過flex嗎?
「 JavaScript 篇 」
JavaScript 基礎
1. JavaScript 裏有哪些數據類型,解釋清楚 null 和 undefined,解釋清楚原始數據類型和引用數據類型。好比講一下 1 和 Number(1)的區別
2. 將一下 prototype 是什麼東西,原型鏈的理解,何時用 prototype
3. 函數裏的this什麼含義,什麼狀況下,怎麼用。
4. apply和 call 什麼含義,什麼區別?何時用。(我有篇文章 重點分析過)
5. 數組和對象有哪些原生方法,列舉一下,分別是什麼含義,好比鏈接兩個數組用哪一個方法,刪除數組的指定項和從新組裝數組(操做數據的重點)。
6. 怎樣避免全局變量污染?ES5嚴格模式的做用,ES6箭頭函數和ES5普通函數同樣嗎?
JavaScript 的面向對象
1. JS 模塊包裝格式都用過哪些,CommonJS、AMD、CMD。定義一個JS 模塊代碼,最精簡的格式是怎樣。
2. JS 怎麼實現一個類。怎麼實例化這個類。
3. 理解閉包嗎?請講一講閉包在實際開發中的做用;閉包建議頻繁使用嗎?
4. 說一下了解的js 設計模式,解釋一下單例、工廠、觀察者。
5. ajax 跨域有哪些方法,jsonp 的原理是什麼,若是頁面編碼和被請求的資源編碼不一致如何處理?
「 開源工具 」
1)是否瞭解開源的架構工具 bower、npm、yeoman、gulp、webpack,有無用過,有無寫過,一個 npm 的包裏的 package.json 具有的必要的字段都有哪些(名稱、版本號,依賴)
2)github經常使用不經常使用,關注過哪些項目
3)會不會用 ps 扣圖,png、jpg、gif 這些圖片格式解釋一下,分別何時用。如何優化圖像、圖像格式的區別
4)說一下你經常使用的命令行工具
5)會不會用git,說上來幾個命令,說一下git和svn的區別,有沒有用git解決過沖突
「 計算機網絡基礎 」
1)說一下HTTP 協議頭字段說上來幾個,是否儘量詳細的掌握HTTP協議。一次完整的HTTP事務是怎樣的一個過程?
2)cookies 是幹嗎的,服務器和瀏覽器之間的 cookies 是怎麼傳的,httponly 的 cookies 和可讀寫的 cookie 有什麼區別,有無長度限制
請描述一下cookies,sessionStorage和localStorage的區別
3)從敲入 URL 到渲染完成的整個過程,包括 DOM 構建的過程,說的約詳細越好。
4)是否瞭解Web注入攻擊,說下原理,最多見的兩種攻擊(XSS 和 CSRF)瞭解到什麼程度。
5)是否瞭解公鑰加密和私鑰加密。如何確保表單提交裏的密碼字段不被泄露。驗證碼是幹嗎的,是爲了解決什麼安全問題。
6)編碼常識:文件編碼、URL 編碼、Unicode編碼 什麼含義。一個gbk編碼的頁面如何正確引
「 前端框架 」
1) 對 MVC、MVVM的理解
2) vue、angularjs等 相對於 jQuery在開發上有什麼優勢?
3)先後分離的思想了解嗎?
4)你上一個項目都用到了那些方法優化js的性能?
5)angular的生命週期?
6)說一下你對vue和vuex的使用方法,vue的組件複用機制
考察學習能力和方法
1)你天天必須登陸的網站(前端技術相關)是什麼?
2)前端技術方面看過哪些書,有無筆記,都有哪些收穫。
3)收藏了哪些代碼片斷?有想過開源本身的代碼嘛?
4)怎麼理解前端技術的大趨勢?本身再作哪方面的知識儲備?
5)是否瞭解或精通其餘(後端)的編程語言?
6)作項目有沒有遇到哪些印象深入的技術攻關,具體遇到什麼問題,怎麼找答案的,最後怎麼解的。
7)對之後本身的前端職業路線,咋麼規劃
開放性問題(重要)
這些問題每每決定你是否最終被錄用或者等到終輪面試,技術點回答錯了沒關係,人腦不是機器,是能夠惡補的。
但若是你沒有思想和獨到的思路,基礎挖的再深,可能也打動不了面試官,由於比你基礎好的一大堆,但每一個人的個性思想倒是不一樣的
1. 若是須要你加班,你會加嗎,抵觸嗎?
其實你確定抵觸,但你確定要回答若是項目須要確定會加
2. 一個小項目讓你本身負責搭建底層一些架構,你能勝任嗎?
回答例如:我確定願意嘗試,並作到最優的選擇方案出來
3. 若是項目拖過久,你情緒低落或者厭煩了怎麼調節?
回答就是, 你結合自身挑着好聽的說就行,就像聊天
4. 你建議本身造輪子,仍是利用開源的輪子?
回答:根據實際狀況而定,若是開源徹底知足 能夠本身二次開發就好,大大縮短開發週期
若是實在沒有契合度很高的,能夠花費幾個工做日嘗試造輪。
OK!,今天先到這裏,這些問題,網上都有可查的答案,本身不要懶,只要勤奮才能進步。有問題歡迎再文章留言,儘可能不要再公衆號私聊信息,由於我看不完,在文章底部寫留言 便可, 我會一一回復。