2018 淺談前端面試那些事


知識點匯總

1.HTML

  • HTML5新特性,語義化

  • 瀏覽器的標准模式和怪異模式

  • xhtml和html的區別

  • 使用data-的好處

  • meta標簽

  • canvas

  • HTML廢棄的標簽

  • IE6 bug,和一些定位寫法

  • css js放置位置和原因

  • 什么是漸進式渲染

  • html模板語言

  • meta viewport原理-

2.CSS

  • 盒模型,box-sizing

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

  • CSS實現隱藏頁面的方式

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

  • 說說position,display

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

  • 浮動元素引起的問題和解決辦法?絕對定位和相對定位,元素浮動后的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

  • 為什么要錄取你?

  • 周末都會干什么?

  • 未來職業規划


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM