『壹』 前端面試會提問到哪些
在面試前端的過程中,有些問題是經常會被提問到的
一、基礎篇
1. 在不使用第三個變數的情況下,如何調換a與b的值?
2. px與em的區別
3. 簡述一下盒模型
4. 頁面導入樣式時,使用link和@import有什麼區別?
5. 簡述一下事件代理
二、HTML常見題目
01、Doctype作用?嚴格模式與混雜模式如何區分?它們有何意義?
02、HTML5為什麼只需要寫?
03、行內元素有哪些?塊級元素有哪些?空(void)元素有哪些?
04、頁面導入樣式時,使用link和@import有什麼區別?
05、介紹一下你對瀏覽器內核的理解?
06、常見的瀏覽器內核有哪些?
07、html5有哪些新特性、移除了哪些元素?如何處理HTML5新標簽的瀏覽器兼容問題?
08、如何區分HTML和HTML5?
09、簡述一下你對HTML語義化的理解?
10、HTML5的離線儲存怎麼使用,工作原理能不能解釋一下?
三、CSS類的題目
01、介紹一下標準的CSS的盒子模型?與低版本IE的盒子模型有什麼不同的?
02、CSS選擇符有哪些?哪些屬性可以繼承?
03、CSS優先順序演算法如何計算?
04、CSS3新增偽類有哪些?
05、如何居中div?如何居中一個浮動元素?如何讓絕對定位的div居中?
06、display有哪些值?說明他們的作用。
07、position的值relative和absolute定位原點是?
08、CSS3有哪些新特性?
09、請解釋一下CSS3的Flexbox(彈性盒布局模型),以及適用場景?
10、用純CSS創建一個三角形的原理是什麼?
四、JavaScript類的題目
01、JavaScript中this是如何工作的
02、請解釋原型繼承的原理。
03、什麼是閉包(closure),如何使用它,為什麼要使用它?
04、.call 和.apply的區別是什麼?
05、請指出JavaScript 宿主對象(host objects) 和原生對象(native objects) 的區別?
06、請指出以下代碼的區別:function Person(){}、var person = Person()、var person = new Person()?
07、請解釋變數聲明提升(hoisting)。
08、什麼是 「use strict」; ? 使用它的好處和壞處分別是什麼?
09、什麼是事件循環 (event loop)?
10、請解釋同步 (synchronous) 和非同步 (asynchronous) 函數的區別。
五、開發及性能優化類題目
01、如何規避javascript多人開發函數重名問題?
02、請說出三種減低頁面載入時間的方法.
03、說說你所了解到的Web攻擊技術。
04、說說你說了解的前端性能優化方法?
05、前端開發中,如何優化圖像?圖像格式的區別?
06、瀏覽器是如何渲染頁面的?
07、頁面重構怎麼操作?
08、什麼叫優雅降級和漸進增強?
09、前端需要注意哪些SEO?如何做SEO優化?
10、平時如何管理你的項目?
『貳』 前端面試題整理(一)
進程是CPU資源分配的最小單位,線程是CPU調度的最小單位
其中GUI渲染線程和JS引擎是無法同時工作的
默認情況下, TCP 連接會啟用延遲傳送演算法 (Nagle 演算法), 在數據發送之前緩存他們. 如果短時間有多個數據發送, 會緩沖到一起作一次發送 (緩沖大小見 socket.bufferSize), 這樣可以減少 IO 消耗提高性能.
如果是傳輸文件的話, 那麼根本不用處理粘包的問題, 來一個包拼一個包就好了. 但是如果是多條消息, 或者是別的用途的數據那麼就需要處理粘包.
可以參見網上流傳比較廣的一個例子, 連續調用兩次 send 分別發送兩段數據 data1 和 data2, 在接收端有以下幾種常見的情況:
A. 先接收到 data1, 然後接收到 data2 .
B. 先接收到 data1 的部分數據, 然後接收到 data1 餘下的部分以及 data2 的全部.
C. 先接收到了 data1 的全部數據和 data2 的部分數據, 然後接收到了 data2 的餘下的數據.
D. 一次性接收到了 data1 和 data2 的全部數據.
其中的 BCD 就是我們常見的粘包的情況. 而對於處理粘包的問題, 常見的解決方案有:
多次發送之前間隔一個等待時間
關閉 Nagle 演算法
進行封包/拆包
通過滑動窗口協議(連續ARQ協議)實現,保證了分組無差錯、有序接收、流量控制。接收方返回的ACK中會包含自己的接收窗口的大小,並且利用大小來控制發送方的數據發送。
當發送者收到了一個窗口為0的應答,發送者便停止發送,等待接收者的下一個應答。如果這個窗口不為0的應答在傳輸過程中丟失,發送者一直等待,接收者以為發送者收到該應答,等待接收新數據,這樣雙方就相互等待,從而產生死鎖
TCP使用了持續計時器。每當發送者收到一個0窗口的應答後就啟動該計時器。計時器到時便主動發送報文詢問接收者的窗口大小。若接收者仍然返回0窗口,則重置該計時器繼續等待;若窗口不為0,則標識應答報文丟失了,此時重置發送窗口開始發送,這樣就避免了死鎖的產生
擁塞控制是作用於網路的,防止網路負載過大,常用的方法:1.慢啟動、擁塞避免 2.快重傳、快恢復。流量控制是作用於接收者的,控制發送者的發送速度使接收者來得及接收,防止分組丟失
發送方維持一個叫做擁塞窗口CWnd的狀態變數,控制著傳輸速度,TCP開始發送報文時CWnd=1。一個傳輸輪次所經歷的時間就是往返時間RTT,每經過一個RTT並且按時收到確認,就將擁塞窗口CWnd加倍。還有一個叫慢啟動門限ssthresh的狀態變數,當CWnd<ssthresh時,使用慢啟動,當CWnd>=ssthresh改用擁塞避免演算法
每經過一個往返時間RTT就把發送方的擁塞窗口cwnd加1而不是加倍。無論在慢啟動階段還是擁塞避免階段,只要發送方沒有按時收到確認,就把慢啟動門限設置為出現擁塞時的擁塞窗口cwnd的一半(但不小於2)。然後把擁塞窗口cwnd重置為1,執行慢啟動演算法
接收方收到一個失序的報文段後就立刻發出重復確認而不是等到自己發送數據時捎帶確認。只要發送方一連收到三個重復確認就立即重傳對方尚未收到的報文段,而不是等待重傳計時器到期
當發送方連續收到三個重復確認時,把慢啟動門限ssthresh減半,但是並不執行慢開始演算法,而是將擁塞窗口cwnd設置為ssthresh減半後的值,直接執行擁塞避免演算法。快重傳配合快恢復的TCP Reno版本是目前使用最廣的版本。
幀:HTTP/2 數據通信的最小單位消息:指 HTTP/2 中邏輯上的 HTTP 消息。例如請求和響應等,消息由一個或多個幀組成。
流:存在於連接中的一個虛擬通道。流可以承載雙向消息,每個流都有一個唯一的整數ID
HTTP/1.x會在請求和響應中中重復地攜帶不常改變的、冗長的頭部數據,給網路帶來額外的負擔。
服務端可以在發送頁面HTML時主動推送其它資源,而不用等到瀏覽器解析到相應位置,發起請求再響應。例如服務端可以主動把JS和CSS文件推送給客戶端,而不需要客戶端解析HTML時再發送這些請求。
服務端可以主動推送,客戶端也有權利選擇是否接收。如果服務端推送的資源已經被瀏覽器緩存過,瀏覽器可以通過發送RST_STREAM幀來拒收。主動推送也遵守同源策略,伺服器不會隨便推送第三方資源給客戶端。
HTTP 1.x 中,如果想並發多個請求,必須使用多個 TCP 鏈接,且瀏覽器為了控制資源,還會對單個域名有 6-8個的TCP鏈接請求限制。
HTTP2中:
同域名下所有通信都在單個連接上完成。
單個連接可以承載任意數量的雙向數據流。
數據流以消息的形式發送,而消息又由一個或多個幀組成,多個幀之間可以亂序發送,因為根據幀首部的流標識可以重新組裝
前端面試與進階指南
從輸入URL到頁面載入的過程?如何由一道題完善自己的前端知識體系!
『叄』 前端常見面試題
前端開發可能問到的問題:
自我介紹(一定要對項目很熟悉)
ui-app web前端技術體系?
響應式怎麼做?
render跟狀態的差異
類組件的生命周期?
阻止冒泡,阻止事件默認行為
文本垂直居中。 line-height設置為元素高度。
用rece講數組中的對象進行合並
解釋localstorage sessionstorage cookie
eventbus滿足event.on('eventname', callback)
display有幾個值?默認值?
position有幾個值?默認值?
div水平垂直居中?
position有哪些值
react相關問題(概念理解、通訊組件等)、react常用內置
React-router
html+css
頁面增刪改查
position的值 absolute relative fixed static
工作中是怎麼聯調和上線的(現場想合適的前後端聯調方式,能和webpack環境切換聯系起來)
antd的Form shouldUpdate增量更新方式,性能優化。
對Hooks的理解
3:操作dom點擊事件向伺服器上傳數據,在上傳未完成之前不可重復操作事件
4:日期格式化,日期不足前兩位補0(2021-06-06 06:06:00)
用css寫一個布局,左側固定寬度,右側自適應
你看
『肆』 web前端面試經常問到的面試題有哪些
Web前端經常被問到的面試題及答案
一、HTML+CSS
1.對WEB標准以及W3C的理解與認識
標簽閉合、標簽小寫、不亂嵌套、提高搜索機器人搜索幾率、使用外
鏈css和js腳本、結構行為表現的分離、文件下載與頁面速度更快、內容能被更多的用戶所訪問、內容能被更廣泛的設備所訪問、更少的代碼和組件,容易維
護、改版方便,不需要變動頁面內容、提供列印版本而不需要復制內容、提高網站易用性;
2.xhtml和html有什麼區別
HTML是一種基本的WEB網頁設計語言,XHTML是一個基於XML的置標語言
最主要的不同:
XHTML 元素必須被正確地嵌套。
XHTML 元素必須被關閉。
標簽名必須用小寫字母。
XHTML 文檔必須擁有根元素。
3.Doctype? 嚴格模式與混雜模式-如何觸發這兩種模式,區分它們有何意義?
用於聲明文檔使用那種規范(html/Xhtml)一般為 嚴格 過度 基於框架的html文檔
加入XMl聲明可觸發,解析方式更改為IE5.5 擁有IE5.5的bug
4.行內元素有哪些?塊級元素有哪些?CSS的盒模型?
塊級元素:div p h1 h2 h3 h4 form ul
行內元素: a b br i span input select
Css盒模型:內容,border ,margin,padding
5.CSS引入的方式有哪些? link和@import的區別是?
內聯 內嵌 外鏈 導入
區別 :同時載入
前者無兼容性,後者CSS2.1以下瀏覽器不支持
Link 支持使用javascript改變樣式,後者不可
6.CSS選擇符有哪些?哪些屬性可以繼承?優先順序演算法如何計算?內聯和important哪個優先順序高?
標簽選擇符 類選擇符 id選擇符
繼承不如指定 Id>class>標簽選擇
後者優先順序高
7.前端頁面有哪三層構成,分別是什麼?作用是什麼?
結構層 Html 表示層 CSS 行為層 js
8.css的基本語句構成是?
選擇器{屬性1:值1;屬性2:值2;……}
9.你做的頁面在哪些流覽器測試過?這些瀏覽器的內核分別是什麼?
Ie(Ie內核) 火狐(Gecko) 谷歌(webkit) opear(Presto)
二、Javascript
1.javascript的typeof返回哪些數據類型
Object number function boolean underfind
2.例舉3種強制類型轉換和2種隱式類型轉換?
強制(parseInt,parseFloat,number)
隱式(== – ===)
3.split() join() 的區別
前者是切割成數組的形式,後者是將數組轉換成字元串
4.數組方法pop() push() unshift() shift()
Push()尾部添加 pop()尾部刪除
Unshift()頭部添加 shift()頭部刪除
5.事件綁定和普通事件有什麼區別
6.IE和DOM事件流的區別
1.執行順序不一樣、
2.參數不一樣
3.事件加不加on
4.this指向問題
7.IE和標准下有哪些兼容性的寫法
Var ev = ev || window.event
document.documentElement.clientWidth || document.body.clientWidth
Var target = ev.srcElement||ev.target
8.ajax請求的時候get 和post方式的區別
一個在url後面 一個放在虛擬載體裡面
有大小限制
安全問題
應用不同 一個是論壇等只需要請求的,一個是類似修改密碼的
9.call和apply的區別
Object.call(this,obj1,obj2,obj3)
Object.apply(this,arguments)
10.ajax請求時,如何解釋json數據
使用eval parse 鑒於安全性考慮 使用parse更靠譜
11.b繼承a的方法
12.寫一個獲取非行間樣式的函數
function getStyle(obj,attr,value)
{
if(!value)
{
if(obj.currentStyle)
{
return obj.currentStyle(attr)
}
else
{
obj.getComputedStyle(attr,false)
}
}
else
{
obj.style[attr]=value
}
}
『伍』 常見的web前端面試題及答案分享
1、 說下行內元素和塊級元素的區別?行內塊元素的兼容性使用?(IE8 以下)
答:行內元素:會在水平方向排列,不能包含塊級元素,設置width無效,height無效(可以設置line-height),margin上下無效,padding上下無效。塊級元素:各占據一行,垂直方向排列。從新行開始結束接著一個斷行。兼容性:display:inline-block;*display:inline;*zoom:1。
2、box-sizing常用的屬性有哪些?分別有什麼作用?
答:box-sizing: content-box|border-box|inherit。content-box:寬度和高度分別應用到元素的內容框。在寬度和高度之外繪制元素的內邊距和邊框(元素默認效果)。
border-box:元素指定的任何內邊距和邊框都將在已設定的寬度和高度內進行繪制。通過從已設定的寬度和高度分別減去邊框和內邊距才能得到內容的寬度和高度。
3、Doctype作用?標准模式與兼容模式各有什麼區別?
答:告知瀏覽器的解析器用什麼文檔標准解析這個文檔。DOCTYPE不存在或格式不正確會導致文檔以兼容模式呈現。
標准模式的排版和JS運作模式都是以該瀏覽器支持的最高標准運行。在兼容模式中,頁面以寬松的向後兼容的方式顯示,模擬老式瀏覽器的行為以防止站點無法工作。
4、html5有哪些新特性?如何處理HTML5新標簽的瀏覽器兼容問題?如何區分 HTML 和 HTML5?
答:HTML5 現在已經不是 SGML 的子集,主要是關於圖像,位置,存儲,多任務等功能的增加。
(1)繪畫 canvas;
(2)用於媒介回放的 video 和 audio 元素;
(3)本地離線存儲 localStorage 長期存儲數據,瀏覽器關閉後數據不丟失;
(4)sessionStorage 的數據在瀏覽器關閉後自動刪除;
(5)語意化更好的內容元素,比如 article、footer、header、nav、section;
(6)表單控制項,calendar、date、time、email、url、search;
(7)新的技術webworker, websocket, Geolocation;
IE8/IE7/IE6支持通過document.createElement方法產生的標簽,可以利用這一特性讓這些瀏覽器支持HTML5新標簽,瀏覽器支持新標簽後,還需要添加標簽默認的樣式。當然也可以直接使用成熟的框架、比如html5shim。
以上就是環球青藤小編關於web前端面試題的相關分享,希望對大家有所幫助,想要了解更多相關內容,請及時關注本平台並進行查看!
『陸』 前端面試題目匯總(一年經驗)
部分題目 有些面試完忘記了,面試真的不能安排太緊湊啊,腦子完全不夠用,血的教訓😂
寒冬期前端准備總結---JS篇
寒冬期前端准備總結---瀏覽器篇
寒冬期前端准備總結---伺服器和網路篇
寒冬期前端准備總結---CSS篇
寒冬期前端准備總結---框架篇
寒冬期前端准備總結---演算法篇
(當時一個下午現場面試兩家,累趴了,這家面的很差)
『柒』 高級前端面試題目大全(三)
解析: 第 41題
比如 sleep(1000) 意味著等待1000毫秒,可從 Promise、Generator、Async/Await 等角度實現
解析: 第 42 題
解析: 第 43 題
1、客戶端使用https的url訪問web伺服器,要求與伺服器建立ssl連接
2、web伺服器收到客戶端請求後, 會將網站的證書(包含公鑰)傳送一份給客戶端
3、客戶端收到網站證書後會檢查證書的頒發機構以及過期時間, 如果沒有問題就隨機產生一個秘鑰
4、客戶端利用公鑰將會話秘鑰加密, 並傳送給服務端, 服務端利用自己的私鑰解密出會話秘鑰
5、之後伺服器與客戶端使用秘鑰加密傳輸
解析: 第 44 題
解析: 第 45 題
1.使用第一次push,obj對象的push方法設置 obj[2]=1;obj.length+=1
2.使用第二次push,obj對象的push方法設置 obj[3]=2;obj.length+=1
3.使用console.log輸出的時候,因為obj具有 length 屬性和 splice 方法,故將其作為數組進行列印
4.列印時因為數組未設置下標為 0 1 處的值,故列印為empty,主動 obj[0] 獲取為 undefined
解析: 第 46 題
解析: 第 47 題
1、Function.prototype.apply和Function.prototype.call 的作用是一樣的,區別在於傳入參數的不同;
2、第一個參數都是,指定函數體內this的指向;
3、第二個參數開始不同,apply是傳入帶下標的集合,數組或者類數組,apply把它傳給函數作為參數,call從第二個開始傳入的參數是不固定的,都會傳給函數作為參數。
4、call比apply的性能要好,平常可以多用call, call傳入參數的格式正是內部所需要的格式
解析: 第 48 題
解析: 第 49 題
解析: 第 50 題
為什麼在 Vue3.0 採用了 Proxy,拋棄了 Object.defineProperty?
解析: 第 51 題
解析: 第 52 題
解析: 第 53 題
解析: 第 54 題
如下:{1:222, 2:123, 5:888},請把數據處理為如下結構:[222, 123, null, null, 888, null, null, null, null, null, null, null]。
解析: 第 55 題
解析: 第 56 題
解析: 第 57 題
解析: 第 58 題
解析: 第 59 題
解析: 第 60 題
解析: 第 61 題
解析: 第 62 題
解析: 第 63 題
解析: 第 64 題
解析: 第 65 題
解析: 第 66 題
隨機生成一個長度為 10 的整數類型的數組,例如 [2, 10, 3, 4, 5, 11, 10, 11, 20] ,將其排列成一個新數組,要求新數組形式如下,例如 [[2, 3, 4, 5], [10, 11], [20]] 。
解析: 第 67 題
解析: 第 68 題
解析: 第 69 題
解析: 第 70 題
解析: 第 71 題
[圖片上傳失敗...(image-2eeb30-1575446538468)]
<figcaption></figcaption>
解析: 第 72 題
解析: 第 73 題
解析: 第 74 題
解析: 第 75 題
解析: 第 76 題
示例 1:
示例 2:
解析: 第 77 題
解析: 第 78 題
解析: 第 79 題
解析: 第 80 題
解析: 第 81 題
解析: 第 82 題
解析: 第 83 題
習題: https://blog.csdn.net/qq_37024887/article/details/106784068
解析: 第 84 題
解析: 第 85 題
給定一個整數數組和一個目標值,找出數組中和為目標值的兩個數。
你可以假設每個輸入只對應一種答案,且同樣的元素不能被重復利用。
示例:
解析: 第 86 題
解析: 第 87 題
以下數據結構中,id 代表部門編號,name 是部門名稱,parentId 是父部門編號,為 0 代表一級部門,現在要求實現一個 convert 方法,把原始 list 轉換成樹形結構,parentId 為多少就掛載在該 id 的屬性 children 數組下,結構如下:
解析: 第 88 題
解析: 第 89 題
[圖片上傳失敗...(image-aea64e-1575446538470)]
解析: 第 90 題
解析: 第 91 題
[圖片上傳失敗...(image-21d53f-1575446538470)]
解析: 第 92 題
示例 1:
中位數是 2.0
示例 2:
中位數是(2 + 3) / 2 = 2.5
解析: 第 93 題
解析: 第 94 題
解析: 第 95 題
解析: 第 96 題
解析: 第 97 題
解析: 第 98 題
解析: 第 99 題
解析:[第 100 題]( https://github.com/Advanced-Frontend/Daily-
『捌』 Web前端崗位面試題有哪些
前端面試題匯總,基本上會有四大類問題,具體如下:
一、HTML
1、Doctype作用?嚴格模式與混雜模式如何區分?它們有何意義?
2、HTML5 為什麼只需要寫 <!DOCTYPE HTML>?
3、行內元素有哪些?塊級元素有哪些? 空(void)元素有那些?
4、頁面導入樣式時,使用link和@import有什麼區別?
5、介紹一下你對瀏覽器內核的理解?
6、常見的瀏覽器內核有哪些?
7、html5有哪些新特性、移除了那些元素?如何處理HTML5新標簽的瀏覽器兼容問題?如何區分 HTML 和 HTML5?
8、簡述一下你對HTML語義化的理解?
9、HTML5的離線儲存怎麼使用,工作原理能不能解釋一下?
10、瀏覽器是怎麼對HTML5的離線儲存資源進行管理和載入的呢?
11、請描述一下 cookies,sessionStorage 和 localStorage 的區別?
12、iframe有那些缺點?
13、Label的作用是什麼?是怎麼用的?(加 for 或 包裹)
14、HTML5的form如何關閉自動完成功能?
15、如何實現瀏覽器內多個標簽頁之間的通信? (阿里)
16、webSocket如何兼容低瀏覽器?(阿里)
17、頁面可見性(Page Visibility)API 可以有哪些用途?
18、如何在頁面上實現一個圓形的可點擊區域?
19、實現不使用 border 畫出1px高的線,在不同瀏覽器的Quirksmode和CSSCompat模式下都能保持同一效果。
20、網頁驗證碼是幹嘛的,是為了解決什麼安全問題?
21、tite與h1的區別、b與strong的區別、i與em的區別?
二、css
1、介紹一下標準的CSS的盒子模型?與低版本IE的盒子模型有什麼不同的?
2、CSS選擇符有哪些?哪些屬性可以繼承?
3、CSS優先順序演算法如何計算?
4、CSS3新增偽類有那些?
5、如何居中div?如何居中一個浮動元素?如何讓絕對定位的div居中?
6、display有哪些值?說明他們的作用。
7、position的值relative和absolute定位原點是?
8、CSS3有哪些新特性?
9、請解釋一下CSS3的Flexbox(彈性盒布局模型),以及適用場景?
10、用純CSS創建一個三角形的原理是什麼?
11、一個滿屏 品 字布局 如何設計?
三、常見兼容性問題?
1、li與li之間有看不見的空白間隔是什麼原因引起的?有什麼解決辦法?
2、經常遇到的瀏覽器的兼容性有哪些?原因,解決方法是什麼,常用hack的技巧 ?
3、為什麼要初始化CSS樣式。
4、absolute的containing block計算方式跟正常流有什麼不同?
5、CSS里的visibility屬性有個collapse屬性值是幹嘛用的?在不同瀏覽器下以後什麼區別?
6、position跟display、margin collapse、overflow、float這些特性相互疊加後會怎麼樣?
7、對BFC規范(塊級格式化上下文:block formatting context)的理解?
8、CSS權重優先順序是如何計算的?
9、請解釋一下為什麼會出現浮動和什麼時候需要清除浮動?清除浮動的方式
10、移動端的布局用過媒體查詢嗎?
11、使用 CSS 預處理器嗎?喜歡那個?
12、CSS優化、提高性能的方法有哪些?
13、瀏覽器是怎樣解析CSS選擇器的?
14、在網頁中的應該使用奇數還是偶數的字體?為什麼呢?
15、margin和padding分別適合什麼場景使用?
16、抽離樣式模塊怎麼寫,說出思路,有無實踐經驗?[阿里航旅的面試題]
17、元素豎向的百分比設定是相對於容器的高度嗎?
18、全屏滾動的原理是什麼?用到了CSS的那些屬性?
19、什麼是響應式設計?響應式設計的基本原理是什麼?如何兼容低版本的IE?
20、視差滾動效果,如何給每頁做不同的動畫?(回到頂部,向下滑動要再次出現,和只出現一次分別怎麼做?)
21、::before 和 :after中雙冒號和單冒號 有什麼區別?解釋一下這2個偽元素的作用。
22、如何修改chrome記住密碼後自動填充表單的黃色背景 ?
23、你對line-height是如何理解的?
24、設置元素浮動後,該元素的display值是多少?(自動變成display:block)
25、怎麼讓Chrome支持小於12px 的文字?
26、讓頁面里的字體變清晰,變細用CSS怎麼做?(-webkit-font-smoothing: antialiased;)
27、font-style屬性可以讓它賦值為「oblique」 oblique是什麼意思?
28、position:fixed;在android下無效怎麼處理?
29、如果需要手動寫動畫,你認為最小時間間隔是多久,為什麼?(阿里)
30、display:inline-block 什麼時候會顯示間隙?(攜程)
31、overflow: scroll時不能平滑滾動的問題怎麼處理?
32、有一個高度自適應的div,裡面有兩個div,一個高度100px,希望另一個填滿剩下的高度。
33、png、jpg、gif 這些圖片格式解釋一下,分別什麼時候用。有沒有了解過webp?
34、什麼是Cookie 隔離?(或者說:請求資源的時候不要讓它帶cookie怎麼做)
35、style標簽寫在body後與body前有什麼區別?
四、JavaScript
1、介紹JavaScript的基本數據類型。
2、說說寫JavaScript的基本規范?
3、JavaScript原型,原型鏈 ? 有什麼特點?
4、JavaScript有幾種類型的值?(堆:原始數據類型和 棧:引用數據類型),你能畫一下他們的內存圖嗎?
5、Javascript如何實現繼承?
6、Javascript創建對象的幾種方式?
7、Javascript作用鏈域?
8、談談This對象的理解。
9、eval是做什麼的?
10、什麼是window對象? 什麼是document對象?
11、null,undefined的區別?
12、寫一個通用的事件偵聽器函數(機試題)。
13、[「1」, 「2」, 「3」].map(parseInt) 答案是多少?
14、關於事件,IE與火狐的事件機制有什麼區別? 如何阻止冒泡?
15、什麼是閉包(closure),為什麼要用它?
16、javascript 代碼中的」use strict」;是什麼意思 ? 使用它區別是什麼?
17、如何判斷一個對象是否屬於某個類?
18、new操作符具體幹了什麼呢?
19、用原生JavaScript的實現過什麼功能嗎?
20、Javascript中,有一個函數,執行時對象查找時,永遠不會去查找原型,這個函數是?
21、對JSON的了解?
22、[].forEach.call($$("*"),function(a){ a.style.outline="1px solid #"+(~~(Math.random()*(1<<24))).toString(16) }) 能解釋一下這段代碼的意思嗎?
23、js延遲載入的方式有哪些?
24、Ajax 是什麼? 如何創建一個Ajax?
25、同步和非同步的區別?
26、如何解決跨域問題?
27、頁面編碼和被請求的資源編碼如果不一致如何處理?
28、模塊化開發怎麼做?
29、AMD(Moles/Asynchronous-Definition)、CMD(Common MoleDefinition)規范區別?
30、requireJS的核心原理是什麼?(如何動態載入的?如何避免多次載入的?如何 緩存的?)
31、讓你自己設計實現一個requireJS,你會怎麼做?
32、談一談你對ECMAScript6的了解?
33、ECMAScript6 怎麼寫class么,為什麼會出現class這種東西?
34、非同步載入的方式有哪些?
35、documen.write和 innerHTML的區別?
36、DOM操作——怎樣添加、移除、移動、復制、創建和查找節點?
37、.call() 和 .apply() 的含義和區別?
38、數組和對象有哪些原生方法,列舉一下?
39、JS 怎麼實現一個類。怎麼實例化這個類
40、JavaScript中的作用域與變數聲明提升?
41、如何編寫高性能的Javascript?
42、那些操作會造成內存泄漏?
43、JQuery的源碼看過嗎?能不能簡單概況一下它的實現原理?
44、jQuery.fn的init方法返回的this指的是什麼對象?為什麼要返回this?
45、jquery中如何將數組轉化為json字元串,然後再轉化回來?
46、jQuery 的屬性拷貝(extend)的實現原理是什麼,如何實現深拷貝?
47、jquery.extend 與 jquery.fn.extend的區別?
48、jQuery 的隊列是如何實現的?隊列可以用在哪些地方?
49、談一下Jquery中的bind(),live(),delegate(),on()的區別?
50、JQuery一個對象可以同時綁定多個事件,這是如何實現的?
51、是否知道自定義事件。jQuery里的fire函數是什麼意思,什麼時候用?
52、jQuery 是通過哪個方法和 Sizzle 選擇器結合的?(jQuery.fn.find()進入Sizzle)
53、針對 jQuery性能的優化方法?
54、Jquery與jQuery UI有啥區別?
55、JQuery的源碼看過嗎?能不能簡單說一下它的實現原理?
56、jquery 中如何將數組轉化為json字元串,然後再轉化回來?
57、jQuery和Zepto的區別?各自的使用場景?
58、針對 jQuery 的優化方法?
59、Zepto的點透問題如何解決?
60、jQueryUI如何自定義組件?
61、需求:實現一個頁面操作不會整頁刷新的網站,並且能在瀏覽器前進、後退時正確響應。給出你的技術實現方案?
62、如何判斷當前腳本運行在瀏覽器還是node環境中?(阿里)
63、移動端最小觸控區域是多大?
64、jQuery 的 slideUp動畫 ,如果目標元素是被外部事件驅動, 當滑鼠快速地連續觸發外部元素事件, 動畫會滯後的反復執行,該如何處理呢?
65、把 Script 標簽 放在頁面的最底部的body封閉之前 和封閉之後有什麼區別?瀏覽器會如何解析它們?
66、移動端的點擊事件的有延遲,時間是多久,為什麼會有? 怎麼解決這個延時?(click 有 300ms 延遲,為了實現safari的雙擊事件的設計,瀏覽器要知道你是不是要雙擊操作。)
67、知道各種JS框架(Angular, Backbone, Ember, React, Meteor, Knockout…)么? 能講出他們各自的優點和缺點么?
68、Underscore 對哪些 JS 原生對象進行了擴展以及提供了哪些好用的函數方法?
69、解釋JavaScript中的作用域與變數聲明提升?
70、那些操作會造成內存泄漏?
71、JQuery一個對象可以同時綁定多個事件,這是如何實現的?
72、Node.js的適用場景?
(如果會用node)知道route, middleware, cluster, nodemon, pm2, server-side rendering么?
73、解釋一下 Backbone 的 MVC 實現方式?
74、什麼是「前端路由」?什麼時候適合使用「前端路由」? 「前端路由」有哪些優點和缺點?
75、知道什麼是webkit么? 知道怎麼用瀏覽器的各種工具來調試和debug代碼么?
76、如何測試前端代碼么? 知道BDD, TDD, Unit Test么? 知道怎麼測試你的前端工程么(mocha, sinon, jasmin, qUnit..)?
77、前端templating(Mustache, underscore, handlebars)是幹嘛的, 怎麼用?
78、簡述一下 Handlebars 的基本用法?
79、簡述一下 Handlerbars 的對模板的基本處理流程, 如何編譯的?如何緩存的?
80、用js實現千位分隔符?(來源:前端農民工,提示:正則+replace)
檢測瀏覽器版本版本有哪些方式?
81、我們給一個dom同時綁定兩個點擊事件,一個用捕獲,一個用冒泡,你來說下會執行幾次事件,然後會先執行冒泡還是捕獲