2018 浅谈前端面试那些事
1.HTML
-
HTML5新特性,語義化
-
瀏覽器的標(biāo)準(zhǔn)模式和怪異模式
-
xhtml和html的區(qū)別
-
使用data-的好處
-
meta標(biāo)簽
-
canvas
-
HTML廢棄的標(biāo)簽
-
IE6 bug,和一些定位寫法
-
css js放置位置和原因
-
什么是漸進式渲染
-
html模板語言
-
meta viewport原理-
2.CSS
-
盒模型,box-sizing
-
CSS3新特性,偽類,偽元素,錨偽類
-
CSS實現(xiàn)隱藏頁面的方式
-
如何實現(xiàn)水平居中和垂直居中。
-
說說position,display
-
請解釋*{box-sizing:border-box;}的作用,并說明使用它的好處
-
浮動元素引起的問題和解決辦法?絕對定位和相對定位,元素浮動后的display值
-
link和@import引入css的區(qū)別
-
解釋一下css3的flexbox,以及適用場景
-
inline和inline-block的區(qū)別
-
哪些是塊級元素那些是行級元素,各有什么特點
-
grid布局
-
table布局的作用
-
實現(xiàn)兩欄布局有哪些方法?
-
css dpi
-
你知道attribute和property的區(qū)別么
-
css布局問題?css實現(xiàn)三列布局怎么做?如果中間是自適應(yīng)又怎么做?
-
流式布局如何實現(xiàn),響應(yīng)式布局如何實現(xiàn)
-
移動端布局方案
-
實現(xiàn)三欄布局(圣杯布局,雙飛翼布局,flex布局)
-
清除浮動的原理
-
overflow:hidden有什么缺點?
-
padding百分比是相對于父級寬度還是自身的寬度
-
css3動畫,transition和animation的區(qū)別,animation的屬性,加速度,重力的模擬實現(xiàn)
-
CSS 3 如何實現(xiàn)旋轉(zhuǎn)圖片(transform: rotate)
-
sass less
-
對移動端開發(fā)了解多少?(響應(yīng)式設(shè)計、Zepto;@media、viewport、JavaScript 正則表達式判斷平臺。)
-
什么是bfc,如何創(chuàng)建bfc?解決什么問題?
-
CSS中的長度單位(px,pt,rem,em,ex,vw,vh,vh,vmin,vmax)
-
CSS 選擇器的優(yōu)先級是怎樣的?
-
雪碧圖
-
svg
-
媒體查詢的原理是什么?
-
CSS 的加載是異步的嗎?表現(xiàn)在什么地方?
-
常遇到的瀏覽器兼容性問題有哪些?常用的hack的技巧
-
外邊距合并
-
解釋一下“::before”和“:after”中的雙冒號和單冒號的區(qū)別-
3.JS
-
js的基本類型有哪些?引用類型有哪些?null和undefined的區(qū)別。
-
如何判斷一個變量是Array類型?如何判斷一個變量是Number類型?(都不止一種)
-
Object是引用類型嘛?引用類型和基本類型有什么區(qū)別?哪個是存在堆哪一個是存在棧上面的?
-
JS常見的dom操作api
-
解釋一下事件冒泡和事件捕獲
-
事件委托(手寫例子),事件冒泡和捕獲,如何阻止冒泡?如何組織默認(rèn)事件?
-
對閉包的理解?什么時候構(gòu)成閉包?閉包的實現(xiàn)方法?閉包的優(yōu)缺點?
-
this有哪些使用場景?跟C,Java中的this有什么區(qū)別?如何改變this的值?
-
call,apply,bind
-
顯示原型和隱式原型,手繪原型鏈,原型鏈?zhǔn)鞘裁?#xff1f;為什么要有原型鏈
-
創(chuàng)建對象的多種方式
-
實現(xiàn)繼承的多種方式和優(yōu)缺點
-
new 一個對象具體做了什么
-
手寫Ajax,XMLHttpRequest
-
變量提升
-
舉例說明一個匿名函數(shù)的典型用例
-
指出JS的宿主對象和原生對象的區(qū)別,為什么擴展JS內(nèi)置對象不是好的做法?有哪些內(nèi)置對象和內(nèi)置函數(shù)?
-
attribute和property的區(qū)別
-
document load和document DOMContentLoaded兩個事件的區(qū)別
-
=== 和 == , [] === [], undefined === undefined,[] == [], undefined == undefined
-
typeof能夠得到哪些值
-
什么是“use strict”,好處和壞處
-
函數(shù)的作用域是什么?js 的作用域有幾種?
-
JS如何實現(xiàn)重載和多態(tài)
-
常用的數(shù)組api,字符串a(chǎn)pi
-
原生事件綁定(跨瀏覽器),dom0和dom2的區(qū)別?
-
給定一個元素獲取它相對于視圖窗口的坐標(biāo)
-
如何實現(xiàn)圖片滾動懶加載
-
js 的字符串類型有哪些方法? 正則表達式的函數(shù)怎么使用?
-
深拷貝
-
編寫一個通用的事件監(jiān)聽函數(shù)
-
web端cookie的設(shè)置和獲取
-
setTimeout和promise的執(zhí)行順序
-
JavaScript 的事件流模型都有什么?
-
navigator對象,location和history
-
js的垃圾回收機制
-
內(nèi)存泄漏的原因和場景
-
DOM事件的綁定的幾種方式
-
DOM事件中target和currentTarget的區(qū)別
-
typeof 和 instanceof 區(qū)別,instanceof原理
-
js動畫和css3動畫比較
-
JavaScript 倒計時(setTimeout)
-
js處理異常
-
js的設(shè)計模式知道那些
-
輪播圖的實現(xiàn),以及輪播圖組件開發(fā),輪播10000張圖片過程
-
websocket的工作原理和機制。
-
手指點擊可以觸控的屏幕時,是什么事件? 什么是函數(shù)柯里化?以及說一下JS的API有哪些應(yīng)用到了函數(shù)柯里化的實現(xiàn)?(函數(shù)柯里化一些了解,以及在函數(shù)式編程的應(yīng)用,- 最后說了一下JS中bind函數(shù)和數(shù)組的reduce方法用到了函數(shù)柯里化。)
-
JS代碼調(diào)試-
4.ES6
-
談一談 promise
-
所有的 ES6 特性你都知道嗎?如果遇到一個東西不知道是 ES6 還是 ES5, 你該怎么區(qū)分它
-
es6的繼承和es5的繼承有什么區(qū)別
-
promise封裝ajax
-
let const的優(yōu)點
-
es6 generator 是什么,async/await 實現(xiàn)原理
-
ES6和node的commonjs模塊化規(guī)范區(qū)別
-
箭頭函數(shù),以及它的this-
5.計算機網(wǎng)絡(luò)
-
HTTP協(xié)議頭含有哪些重要的部分,HTTP狀態(tài)碼
-
網(wǎng)絡(luò)url輸入到輸出怎么做?
-
性能優(yōu)化為什么要減少 HTTP 訪問次數(shù)?
-
Http請求的過程與原理
-
https(對是https)有幾次握手和揮手?https的原理。
-
http有幾次揮手和握手?TLS的中文名?TLS在哪一網(wǎng)絡(luò)層?
-
TCP連接的特點,TCP連接如何保證安全可靠的?
-
為什么TCP連接需要三次握手,兩次不可以嗎,為什么
-
為什么tcp要三次握手四次揮手?
-
tcp的三次握手和四次揮手畫圖(當(dāng)場畫寫ack 和 seq的值)?
-
tcp與udp的區(qū)別
-
get和post的區(qū)別?什么情況下用到?
-
http2 與http1 的區(qū)別?
-
websocket
-
什么是tcp流,什么是http流
-
babel是如何將es6代碼編譯成es5的
-
http2的持久連接和管線化
-
域名解析時是tcp還是udp
-
域名發(fā)散和域名收斂
-
Post一個file的時候file放在哪的?
-
HTTP Response的Header里面都有些啥?-
6.瀏覽器相關(guān)
-
跨域,為什么JS會對跨域做出限制
-
前端安全:xss,csrf…
-
瀏覽器怎么加載頁面的?script腳本阻塞有什么解決方法?defer和async的區(qū)別?
-
瀏覽器強緩存和協(xié)商緩存
-
瀏覽器的全局變量有哪些
-
瀏覽器同一時間能夠從一個域名下載多少資源
-
按需加載,不同頁面的元素判斷標(biāo)準(zhǔn)
-
web存儲、cookies、localstroge等的使用和區(qū)別
-
瀏覽器的內(nèi)核
-
如何實現(xiàn)緩存機制?(從200緩存,到cache到etag再到)
-
說一下200和304的理解和區(qū)別
-
什么是預(yù)加載、懶加載
-
一個 XMLHttpRequest 實例有多少種狀態(tài)?
-
dns解析原理,輸入網(wǎng)址后如何查找服務(wù)器
-
服務(wù)器如何知道你?
-
瀏覽器渲染過程
-
ie的某些兼容性問題
-
session
-
拖拽實現(xiàn)
-
拆解url的各部分-
7.工程化
-
對webpack,gulp,grunt等有沒有了解?對比。
-
webpack的入口文件怎么配置,多個入口怎么分割。
-
webpack的loader和plugins的區(qū)別
-
gulp的具體使用。
-
前端工程化的理解、如何自己實現(xiàn)一個文件打包,比如一個JS文件里同時又ES5 和ES6寫的代碼,如何編譯兼容他們-
8.模塊化
-
對AMD,CMD,CommonJS有沒有了解?
-
為什么要模塊化?不用的時候和用RequireJs的時候代碼大概怎么寫?
-
說說有哪些模塊化的庫,有了解過模塊化的發(fā)展的歷史嗎?
-
分別說說同步和異步模塊化的應(yīng)用場景,說下AMD異步模塊化實現(xiàn)的原理?
-
如何將項目里面的所有的require的模塊語法換成import的ES6的語法?
-
使用模塊化加載時,模塊加載的順序是怎樣的,如果不知道,根據(jù)已有的知識,你覺得順序應(yīng)該是怎么樣的?-
9.框架
-
使用過哪些框架?
-
zepto 和 jquery 是什么關(guān)系,有什么聯(lián)系么?
-
jquery源碼如何實現(xiàn)選擇器的,為什么$取得的對象要設(shè)計成數(shù)組的形式,這樣設(shè)計的目的是什么
-
jquery如何綁定事件,有幾種類型和區(qū)別
-
什么是MVVM,MVC,MVP
-
Vue和Angular的雙向數(shù)據(jù)綁定原理
-
Vue,Angular組件間通信以及路由原理
-
react和vue的生命周期
-
react和vue的虛擬dom以及diff算法
-
vue的observer,watcher,compile
-
react和angular分別用在什么樣的業(yè)務(wù)嗎?性能方面和MVC層面上的區(qū)別
-
jQuery對象和JS的Element有什么區(qū)別
-
jQuery對象是怎么實現(xiàn)的
-
jQuery除了它封裝了一些方法外,還有什么值得我們?nèi)W(xué)習(xí)和使用的?
-
jQuery的$(‘xxx’)做了什么事情
-
介紹一下bootstrap的柵格系統(tǒng)是如何實現(xiàn)的-
10.Nodejs
-
對nodejs有沒有了解
-
Express 和 koa 有什么關(guān)系,有什么區(qū)別?
-
nodejs適合做什么樣的業(yè)務(wù)?
-
nodejs與php,java有什么區(qū)別
-
Nodejs中的Stream和Buffer有什么區(qū)別?
-
node的異步問題是如何解決的?
-
node是如何實現(xiàn)高并發(fā)的?
-
說一下 Nodejs 的 event loop 的原理-
11.數(shù)據(jù)結(jié)構(gòu)
-
基本數(shù)據(jù)結(jié)構(gòu):(數(shù)組、隊列、鏈表、堆、二叉樹、哈希表等等)
-
8種排序算法,原理,以及適用場景和復(fù)雜度
-
說出越多越好的費波拉切數(shù)列的實現(xiàn)方法?-
12.性能優(yōu)化
-
cdn的用法是什么?什么時候用到?
-
瀏覽器的頁面優(yōu)化?
-
如何優(yōu)化 DOM 操作的性能
-
單頁面應(yīng)用有什么SEO方案?
-
單頁面應(yīng)用首屏顯示比較慢,原因是什么?有什么解決方案?-
13.其他
-
正則表達式
-
前端渲染和后端渲染的優(yōu)缺點
-
數(shù)據(jù)庫的四大特性,什么是原子性,表的關(guān)系
-
你覺得前端體系應(yīng)該是怎樣的?
-
一個靜態(tài)資源要上線,里面有各種資源依賴,你如何平穩(wěn)上線
-
如果要你去實現(xiàn)一個前端模板引擎,你會怎么做
-
知道流媒體查詢嗎?
-
SEO
-
mysql 和 mongoDB 有什么區(qū)別?
-
restful的method解釋
-
數(shù)據(jù)庫知識、操作系統(tǒng)知識
-
click在ios上有300ms延遲,原因及如何解決
-
移動端的適配,rem+媒體查詢/meta頭設(shè)置
-
移動端的手勢和事件;
-
unicode,utf8,gbk編碼的了解,亂碼的解決-
14.開放性問題
-
你都看過什么書?最近在看什么書?
-
用過什么框架?有沒有看過什么框架的代碼?
-
有沒有學(xué)過設(shè)計模式?
-
說一說觀察者模式吧!能不能寫出來?
-
你最大的優(yōu)點是什么?那你最大的缺點呢?
-
你除了寫博客還有什么輸出?
-
現(xiàn)在你的領(lǐng)導(dǎo)給你了一份工作,要求你一個星期完成,但你看了需求以后估計需要3周才能完成,你該怎么辦?
-
平時關(guān)注的前端技術(shù)
-
如何規(guī)劃自己的職業(yè)生涯
-
項目過程中,有遇到什么問題嗎?怎么解決的?
-
最近在研究哪方面的東西?
-
請介紹一項你最熱愛、最擅長的專業(yè)領(lǐng)域,并且介紹的學(xué)習(xí)規(guī)劃。
-
請介紹你參與的印象最深刻的一個項目,為什么?并且介紹你在項目中的角色和發(fā)揮的作用。-
15.HR面
-
你為什么要學(xué)習(xí)前端?
-
你平時的是怎么學(xué)習(xí)前端的?有什么輸出?
-
你覺得自己最好的項目是什么?
-
身邊比較佩服的人有什么值得你學(xué)習(xí)的?你為什么沒有跟他們一樣?
-
同事的什么問題會讓你接受不了
-
壓力最大的事情是什么?
-
身邊的朋友通常對你的評價是什么
-
喜歡什么樣的工作氛圍
-
如何看待加班
-
有沒有對象
-
意向城市
-
其他的offer
-
為什么要錄取你?
-
周末都會干什么?
-
未來職業(yè)規(guī)劃
?
END
?
轉(zhuǎn)載于:https://www.cnblogs.com/guchengnan/p/9054467.html
總結(jié)
以上是生活随笔為你收集整理的2018 浅谈前端面试那些事的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDU2089——不要62 (数位DP)
- 下一篇: 结巴分词器用法