2018前端面試知識點總結

2018前端面試知識點總結

知識點彙總

1.HTML

HTML5新特性,語義化

瀏覽器的標準模式和怪異模式

xhtml和html的區別

使用data-的好處

meta標籤

canvas

HTML廢棄的標籤

IE6bug,和一些定位寫法

cssjs放置位置和原因

什麼是漸進式渲染

html模板語言

metaviewport原理

2.CSS

盒模型,box-sizing

CSS3新特性,偽類,偽元素,錨偽類

CSS實現隱藏頁面的方式

如何實現水平居中和垂直居中。

說說position,display

請解釋*{box-sizing:border-box;}的作用,並說明使用它的好處

浮動元素引起的問題和解決辦法?絕對定位和相對定位,元素浮動後的

display值link和@import引入css的區別

解釋一下css3的flexbox,以及適用場景

inline和inline-block的區別

哪些是塊級元素那些是行級元素,各有什麼特點

grid佈局

table佈局的作用

實現兩欄佈局有哪些方法?

cssdpi

你知道attribute和property的區別麼

css佈局問題?css實現三列布局怎麼做?如果中間是自適應又怎麼做?

流式佈局如何實現,響應式佈局如何實現

移動端佈局方案

實現三欄佈局(聖盃佈局,雙飛翼佈局,flex佈局)

清除浮動的原理overflow:hidden有什麼缺點?

padding百分比是相對於父級寬度還是自身的寬度

css3動畫,transition和animation的區別,animation的屬性,加速度,重力的模擬實現

CSS3 如何實現旋轉圖片(transform:rotate)

sassless

對移動端開發瞭解多少?(響應式設計、Zepto;@media、viewport、JavaScript正則表達式判斷平臺。)

什麼是bfc,如何創建bfc?解決什麼問題?

CSS中的長度單位(px,pt,rem,em,ex,vw,vh,vh,vmin,vmax)

CSS選擇器的優先級是怎樣的?

雪碧圖

svg

媒體查詢的原理是什麼?

CSS的加載是異步的嗎?表現在什麼地方?

常遇到的瀏覽器兼容性問題有哪些?常用的hack的技巧

外邊距合併

解釋一下“::before”和“:after”中的雙冒號和單冒號的區別

3.JS

js的基本類型有哪些?引用類型有哪些?null和undefined的區別。

如何判斷一個變量是Array類型?如何判斷一個變量是Number類型?(都不止一種)

Object是引用類型嘛?引用類型和基本類型有什麼區別?哪個是存在堆哪一個是存在棧上面的?

JS常見的dom操作api

解釋一下事件冒泡和事件捕獲

事件委託(手寫例子),事件冒泡和捕獲,如何阻止冒泡?如何組織默認事件?

對閉包的理解?什麼時候構成閉包?閉包的實現方法?閉包的優缺點?

this有哪些使用場景?跟C,Java中的this有什麼區別?如何改變this的值?call,apply,bind

顯示原型和隱式原型,手繪原型鏈,原型鏈是什麼?為什麼要有原型鏈

創建對象的多種方式

實現繼承的多種方式和優缺點

new一個對象具體做了什麼

手寫Ajax,XMLHttpRequest

變量提升

舉例說明一個匿名函數的典型用例

指出JS的宿主對象和原生對象的區別,為什麼擴展JS內置對象不是好的做法?有哪些內置對象和內置函數?

attribute和property的區別

documentload和documentDOMContentLoaded兩個事件的區別

===和==, [] === [], undefined === undefined,[] == [], undefined == undefined

typeof能夠得到哪些值

什麼是“usestrict”,好處和壞處

函數的作用域是什麼?js的作用域有幾種?

JS如何實現重載和多態

常用的數組api,字符串api

原生事件綁定(跨瀏覽器),dom0和dom2的區別?

給定一個元素獲取它相對於視圖窗口的座標

如何實現圖片滾動懶加載js的字符串類型有哪些方法?正則表達式的函數怎麼使用?

深拷貝

編寫一個通用的事件監聽函數

web端cookie的設置和獲取

setTimeout和promise的執行順序

JavaScript的事件流模型都有什麼?

navigator對象,location和history

js的垃圾回收機制

內存洩漏的原因和場景

DOM事件的綁定的幾種方式

DOM事件中target和currentTarget的區別

typeof和instanceof區別,instanceof原理

js動畫和css3動畫比較

JavaScript倒計時(setTimeout)

js處理異常

js的設計模式知道那些

輪播圖的實現,以及輪播圖組件開發,輪播10000張圖片過程

websocket的工作原理和機制。

手指點擊可以觸控的屏幕時,是什麼事件?

什麼是函數柯里化?以及說一下JS的API有哪些應用到了函數柯里化的實現?(函數柯里化一些瞭解,以及在函數式編程的應用,最後說了一下JS中bind函數和數組的reduce方法用到了函數柯里化。)

JS代碼調試

4.ES6

談一談promise

所有的ES6特性你都知道嗎?如果遇到一個東西不知道是ES6還是ES5,你該怎麼區分它

es6的繼承和es5的繼承有什麼區別

promise封裝ajax

letconst的優點

es6generator 是什麼

async/await實現原理

ES6和node的commonjs模塊化規範區別

箭頭函數,以及它的this

5.計算機網絡

HTTP協議頭含有哪些重要的部分,HTTP狀態碼

網絡url輸入到輸出怎麼做?

性能優化為什麼要減少HTTP訪問次數?

Http請求的過程與原理https(對是https)有幾次握手和揮手?https的原理。

http有幾次揮手和握手?TLS的中文名?TLS在哪一網絡層?

TCP連接的特點,TCP連接如何保證安全可靠的?

為什麼TCP連接需要三次握手,兩次不可以嗎,為什麼

為什麼tcp要三次握手四次揮手?tcp的三次握手和四次揮手畫圖(當場畫寫ack和seq的值)?

tcp與udp的區別

get和post的區別?什麼情況下用到?

http2與http1的區別?

websocket

什麼是tcp流,什麼是http流

babel是如何將es6代碼編譯成es5的

http2的持久連接和管線化

域名解析時是tcp還是udp

域名發散和域名收斂

Post一個file的時候file放在哪的?

HTTPResponse的Header裡面都有些啥?

6.瀏覽器相關

跨域,為什麼JS會對跨域做出限制

前端安全:xss,csrf…

瀏覽器怎麼加載頁面的?script腳本阻塞有什麼解決方法?defer和async的區別?

瀏覽器強緩存和協商緩存

瀏覽器的全局變量有哪些

瀏覽器同一時間能夠從一個域名下載多少資源按需加載,不同頁面的元素判斷標準web存儲、cookies、localstroge等的使用和區別

瀏覽器的內核

如何實現緩存機制?(從200緩存,到cache到etag再到)

說一下200和304的理解和區別

什麼是預加載、懶加載

一個XMLHttpRequest實例有多少種狀態?

dns解析原理,輸入網址後如何查找服務器

服務器如何知道你?

瀏覽器渲染過程

ie的某些兼容性問題

session

拖拽實現

拆解url的各部分

7.工程化

對webpack,gulp,grunt等有沒有了解?對比。

webpack的入口文件怎麼配置,多個入口怎麼分割。

webpack的loader和plugins的區別

gulp的具體使用。

前端工程化的理解、如何自己實現一個文件打包,比如一個JS文件裡同時又ES5和ES6寫的代碼,如何編譯兼容他們

8.模塊化

對AMD,CMD,CommonJS有沒有了解?

為什麼要模塊化?不用的時候和用RequireJs的時候代碼大概怎麼寫?

說說有哪些模塊化的庫,有了解過模塊化的發展的歷史嗎?

分別說說同步和異步模塊化的應用場景,說下AMD異步模塊化實現的原理?

如何將項目裡面的所有的require的模塊語法換成import的ES6的語法?

使用模塊化加載時,模塊加載的順序是怎樣的,如果不知道,根據已有的知識,你覺得順序應該是怎麼樣的?

9.框架

使用過哪些框架?

zepto和jquery是什麼關係,有什麼聯繫麼?

jquery源碼如何實現選擇器的,為什麼$取得的對象要設計成數組的形式,這樣設計的目的是什麼jquery如何綁定事件,有幾種類型和區別

什麼是MVVM,MVC,MVP

Vue和Angular的雙向數據綁定原理

Vue,Angular組件間通信以及路由原理

react和vue的生命週期

react和vue的虛擬dom以及diff算法

vue的observer,watcher,compile

react和angular分別用在什麼樣的業務嗎?性能方面和MVC層面上的區別

jQuery對象和JS的Element有什麼區別

jQuery對象是怎麼實現的

jQuery除了它封裝了一些方法外,還有什麼值得我們去學習和使用的?

jQuery的$(‘xxx’)做了什麼事情

介紹一下bootstrap的柵格系統是如何實現的

10.Nodejs

對nodejs有沒有了解

Express和koa有什麼關係,有什麼區別?

nodejs適合做什麼樣的業務?

nodejs與php,java有什麼區別

Nodejs中的Stream和Buffer有什麼區別?

node的異步問題是如何解決的?

node是如何實現高併發的?

說一下Nodejs的eventloop 的原理

11.數據結構

基本數據結構:(數組、隊列、鏈表、堆、二叉樹、哈希表等等)

8種排序算法,原理,以及適用場景和複雜度

說出越多越好的費波拉切數列的實現方法?

12.性能優化

cdn的用法是什麼?什麼時候用到?

瀏覽器的頁面優化?

如何優化DOM操作的性能

單頁面應用有什麼SEO方案?

單頁面應用首屏顯示比較慢,原因是什麼?有什麼解決方案?

13.其他

正則表達式

前端渲染和後端渲染的優缺點

數據庫的四大特性,什麼是原子性,表的關係

你覺得前端體系應該是怎樣的?

一個靜態資源要上線,裡面有各種資源依賴,你如何平穩上線

如果要你去實現一個前端模板引擎,你會怎麼做

知道流媒體查詢嗎?

SEO

mysql和mongoDB有什麼區別?

restful的method解釋

數據庫知識、操作系統知識

click在ios上有300ms延遲,原因及如何解決

移動端的適配,rem+媒體查詢/meta頭設置

移動端的手勢和事件;

unicode,utf8,gbk編碼的瞭解,亂碼的解決

14.開放性問題

你都看過什麼書?最近在看什麼書?

用過什麼框架?有沒有看過什麼框架的代碼?

有沒有學過設計模式?

說一說觀察者模式吧!能不能寫出來?

你最大的優點是什麼?那你最大的缺點呢?

你除了寫博客還有什麼輸出?

現在你的領導給你了一份工作,要求你一個星期完成,但你看了需求以後估計需要3周才能完成,你該怎麼辦?

平時關注的前端技術如何規劃自己的職業生涯

項目過程中,有遇到什麼問題嗎?怎麼解決的?

最近在研究哪方面的東西?

請介紹一項你最熱愛、最擅長的專業領域,並且介紹的學習規劃。

請介紹你參與的印象最深刻的一個項目,為什麼?並且介紹你在項目中的角色和發揮的作用。

15.HR面

你為什麼要學習前端?

你平時的是怎麼學習前端的?有什麼輸出?

你覺得自己最好的項目是什麼?

身邊比較佩服的人有什麼值得你學習的?你為什麼沒有跟他們一樣?

同事的什麼問題會讓你接受不了

壓力最大的事情是什麼?

身邊的朋友通常對你的評價是什麼

喜歡什麼樣的工作氛圍

如何看待加班

有沒有對象

意向城市

其他的offer

為什麼要錄取你?

週末都會幹什麼?

未來職業規劃

2018前端面試知識點總結


分享到:


相關文章: