當前位置:
首頁 > 知識 > 2018 淺談前端面試那些事

2018 淺談前端面試那些事

原文:https://segmentfault.com/a/1190000013857582

雖然今年沒有換工作的打算,但為了跟上時代的腳步,還是忍不住整理了一份最新前端知識點。

知識點匯總

1.HTML

HTML5新特性,語義化

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

xhtml和html的區別

使用data-的好處

meta標籤

canvas

HTML廢棄的標籤

IE6 bug,和一些定位寫法

css js放置位置和原因

什麼是漸進式渲染

html模板語言

meta viewport原理-

2.CSS

盒模型,box-sizing

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

CSS實現隱藏頁面的方式

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

說說position,display

請解釋*的作用,並說明使用它的好處

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

link和@import引入css的區別

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

inline和inline-block的區別

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

grid布局

table布局的作用

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

css dpi

你知道attribute和property的區別么

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

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

移動端布局方案

實現三欄布局(聖杯布局,雙飛翼布局,flex布局)

清除浮動的原理

overflow:hidden有什麼缺點?

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

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

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

sass less

對移動端開發了解多少?(響應式設計、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的區別

document load和document DOMContentLoaded兩個事件的區別

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

typeof能夠得到哪些值

什麼是「use strict」,好處和壞處

函數的作用域是什麼?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

let const的優點

es6 generator 是什麼,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放在哪的?

HTTP Response的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 的 event loop 的原理-

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

為什麼要錄取你?

周末都會幹什麼?

未來職業規劃

END


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 JavaScript 的精彩文章:

大數據時代,開發者該如何提升自身競爭力
如果面試官問你:從輸入URL到頁面載入發生了什麼

TAG:JavaScript |