A. Web前端崗位面試題有哪些
前端面試題匯總,多餘的就不說先做會這些東西吧
HTML
Doctype作用?嚴格模式與混雜模式如何區分?它們有何意義?
HTML5 為什麼只需要寫 <!DOCTYPE HTML>?
行內元素有哪些?塊級元素有哪些? 空(void)元素有那些?
頁面導入樣式時,使用link和@import有什麼區別?
介紹一下你對瀏覽器內核的理解?
常見的瀏覽器內核有哪些?
html5有哪些新特性、移除了那些元素?如何處理HTML5新標簽的瀏覽器兼容問題?如何區分 HTML 和 HTML5?
簡述一下你對HTML語義化的理解?
HTML5的離線儲存怎麼使用,工作原理能不能解釋一下?
瀏覽器是怎麼對HTML5的離線儲存資源進行管理和載入的呢?
請描述一下 cookies,sessionStorage 和 localStorage 的區別?
iframe有那些缺點?
Label的作用是什麼?是怎麼用的?(加 for 或 包裹)
HTML5的form如何關閉自動完成功能?
如何實現瀏覽器內多個標簽頁之間的通信? (阿里)
webSocket如何兼容低瀏覽器?(阿里)
頁面可見性(Page Visibility)API 可以有哪些用途?
如何在頁面上實現一個圓形的可點擊區域?
實現不使用 border 畫出1px高的線,在不同瀏覽器的Quirksmode和CSSCompat模式下都能保持同一效果。
網頁驗證碼是幹嘛的,是為了解決什麼安全問題?
tite與h1的區別、b與strong的區別、i與em的區別?
css
介紹一下標準的CSS的盒子模型?與低版本IE的盒子模型有什麼不同的?
CSS選擇符有哪些?哪些屬性可以繼承?
CSS優先順序演算法如何計算?
CSS3新增偽類有那些?
如何居中div?如何居中一個浮動元素?如何讓絕對定位的div居中?
display有哪些值?說明他們的作用。
position的值relative和absolute定位原點是?
CSS3有哪些新特性?
請解釋一下CSS3的Flexbox(彈性盒布局模型),以及適用場景?
用純CSS創建一個三角形的原理是什麼?
一個滿屏 品 字布局 如何設計?
常見兼容性問題?
li與li之間有看不見的空白間隔是什麼原因引起的?有什麼解決辦法?
經常遇到的瀏覽器的兼容性有哪些?原因,解決方法是什麼,常用hack的技巧 ?
為什麼要初始化CSS樣式。
absolute的containing block計算方式跟正常流有什麼不同?
CSS里的visibility屬性有個collapse屬性值是幹嘛用的?在不同瀏覽器下以後什麼區別?
position跟display、margin collapse、overflow、float這些特性相互疊加後會怎麼樣?
對BFC規范(塊級格式化上下文:block formatting context)的理解?
CSS權重優先順序是如何計算的?
請解釋一下為什麼會出現浮動和什麼時候需要清除浮動?清除浮動的方式
移動端的布局用過媒體查詢嗎?
使用 CSS 預處理器嗎?喜歡那個?
CSS優化、提高性能的方法有哪些?
瀏覽器是怎樣解析CSS選擇器的?
在網頁中的應該使用奇數還是偶數的字體?為什麼呢?
margin和padding分別適合什麼場景使用?
抽離樣式模塊怎麼寫,說出思路,有無實踐經驗?[阿里航旅的面試題]
元素豎向的百分比設定是相對於容器的高度嗎?
全屏滾動的原理是什麼?用到了CSS的那些屬性?
什麼是響應式設計?響應式設計的基本原理是什麼?如何兼容低版本的IE?
視差滾動效果,如何給每頁做不同的動畫?(回到頂部,向下滑動要再次出現,和只出現一次分別怎麼做?)
::before 和 :after中雙冒號和單冒號 有什麼區別?解釋一下這2個偽元素的作用。
如何修改chrome記住密碼後自動填充表單的黃色背景 ?
你對line-height是如何理解的?
設置元素浮動後,該元素的display值是多少?(自動變成display:block)
怎麼讓Chrome支持小於12px 的文字?
讓頁面里的字體變清晰,變細用CSS怎麼做?(-webkit-font-smoothing: antialiased;)
font-style屬性可以讓它賦值為「oblique」 oblique是什麼意思?
position:fixed;在android下無效怎麼處理?
如果需要手動寫動畫,你認為最小時間間隔是多久,為什麼?(阿里)
display:inline-block 什麼時候會顯示間隙?(攜程)
overflow: scroll時不能平滑滾動的問題怎麼處理?
有一個高度自適應的div,裡面有兩個div,一個高度100px,希望另一個填滿剩下的高度。
png、jpg、gif 這些圖片格式解釋一下,分別什麼時候用。有沒有了解過webp?
什麼是Cookie 隔離?(或者說:請求資源的時候不要讓它帶cookie怎麼做)
style標簽寫在body後與body前有什麼區別?
JavaScript
介紹JavaScript的基本數據類型。
說說寫JavaScript的基本規范?
JavaScript原型,原型鏈 ? 有什麼特點?
JavaScript有幾種類型的值?(堆:原始數據類型和 棧:引用數據類型),你能畫一下他們的內存圖嗎?
Javascript如何實現繼承?
Javascript創建對象的幾種方式?
Javascript作用鏈域?
談談This對象的理解。
eval是做什麼的?
什麼是window對象? 什麼是document對象?
null,undefined的區別?
寫一個通用的事件偵聽器函數(機試題)。
[「1」, 「2」, 「3」].map(parseInt) 答案是多少?
關於事件,IE與火狐的事件機制有什麼區別? 如何阻止冒泡?
什麼是閉包(closure),為什麼要用它?
javascript 代碼中的」use strict」;是什麼意思 ? 使用它區別是什麼?
如何判斷一個對象是否屬於某個類?
new操作符具體幹了什麼呢?
用原生JavaScript的實現過什麼功能嗎?
Javascript中,有一個函數,執行時對象查找時,永遠不會去查找原型,這個函數是?
對JSON的了解?
[].forEach.call($$("*"),function(a){ a.style.outline="1px solid #"+(~~(Math.random()*(1<<24))).toString(16) }) 能解釋一下這段代碼的意思嗎?
js延遲載入的方式有哪些?
Ajax 是什麼? 如何創建一個Ajax?
同步和非同步的區別?
如何解決跨域問題?
頁面編碼和被請求的資源編碼如果不一致如何處理?
模塊化開發怎麼做?
AMD(Moles/Asynchronous-Definition)、CMD(Common Mole Definition)規范區別?
requireJS的核心原理是什麼?(如何動態載入的?如何避免多次載入的?如何 緩存的?)
讓你自己設計實現一個requireJS,你會怎麼做?
談一談你對ECMAScript6的了解?
ECMAScript6 怎麼寫class么,為什麼會出現class這種東西?
非同步載入的方式有哪些?
documen.write和 innerHTML的區別?
DOM操作——怎樣添加、移除、移動、復制、創建和查找節點?
.call() 和 .apply() 的含義和區別?
數組和對象有哪些原生方法,列舉一下?
JS 怎麼實現一個類。怎麼實例化這個類
JavaScript中的作用域與變數聲明提升?
如何編寫高性能的Javascript?
那些操作會造成內存泄漏?
JQuery的源碼看過嗎?能不能簡單概況一下它的實現原理?
jQuery.fn的init方法返回的this指的是什麼對象?為什麼要返回this?
jquery中如何將數組轉化為json字元串,然後再轉化回來?
jQuery 的屬性拷貝(extend)的實現原理是什麼,如何實現深拷貝?
jquery.extend 與 jquery.fn.extend的區別?
jQuery 的隊列是如何實現的?隊列可以用在哪些地方?
談一下Jquery中的bind(),live(),delegate(),on()的區別?
JQuery一個對象可以同時綁定多個事件,這是如何實現的?
是否知道自定義事件。jQuery里的fire函數是什麼意思,什麼時候用?
jQuery 是通過哪個方法和 Sizzle 選擇器結合的?(jQuery.fn.find()進入Sizzle)
針對 jQuery性能的優化方法?
Jquery與jQuery UI有啥區別?
JQuery的源碼看過嗎?能不能簡單說一下它的實現原理?
jquery 中如何將數組轉化為json字元串,然後再轉化回來?
jQuery和Zepto的區別?各自的使用場景?
針對 jQuery 的優化方法?
Zepto的點透問題如何解決?
jQueryUI如何自定義組件?
需求:實現一個頁面操作不會整頁刷新的網站,並且能在瀏覽器前進、後退時正確響應。給出你的技術實現方案?
如何判斷當前腳本運行在瀏覽器還是node環境中?(阿里)
移動端最小觸控區域是多大?
jQuery 的 slideUp動畫 ,如果目標元素是被外部事件驅動, 當滑鼠快速地連續觸發外部元素事件, 動畫會滯後的反復執行,該如何處理呢?
把 Script 標簽 放在頁面的最底部的body封閉之前 和封閉之後有什麼區別?瀏覽器會如何解析它們?
移動端的點擊事件的有延遲,時間是多久,為什麼會有? 怎麼解決這個延時?(click 有 300ms 延遲,為了實現safari的雙擊事件的設計,瀏覽器要知道你是不是要雙擊操作。)
知道各種JS框架(Angular, Backbone, Ember, React, Meteor, Knockout…)么? 能講出他們各自的優點和缺點么?
Underscore 對哪些 JS 原生對象進行了擴展以及提供了哪些好用的函數方法?
解釋JavaScript中的作用域與變數聲明提升?
那些操作會造成內存泄漏?
JQuery一個對象可以同時綁定多個事件,這是如何實現的?
Node.js的適用場景?
(如果會用node)知道route, middleware, cluster, nodemon, pm2, server-side rendering么?
解釋一下 Backbone 的 MVC 實現方式?
什麼是「前端路由」?什麼時候適合使用「前端路由」? 「前端路由」有哪些優點和缺點?
知道什麼是webkit么? 知道怎麼用瀏覽器的各種工具來調試和debug代碼么?
如何測試前端代碼么? 知道BDD, TDD, Unit Test么? 知道怎麼測試你的前端工程么(mocha, sinon, jasmin, qUnit..)?
前端templating(Mustache, underscore, handlebars)是幹嘛的, 怎麼用?
簡述一下 Handlebars 的基本用法?
簡述一下 Handlerbars 的對模板的基本處理流程, 如何編譯的?如何緩存的?
用js實現千位分隔符?(來源:前端農民工,提示:正則+replace)
檢測瀏覽器版本版本有哪些方式?
我們給一個dom同時綁定兩個點擊事件,一個用捕獲,一個用冒泡,你來說下會執行幾次事件,然後會先執行冒泡還是捕獲
其他問題
原來公司工作流程是怎麼樣的,如何與其他人協作的?如何誇部門合作的?
你遇到過比較難的技術問題是?你是如何解決的?
設計模式 知道什麼是singleton, factory, strategy, decrator么?
常使用的庫有哪些?常用的前端開發工具?開發過什麼應用或組件?
頁面重構怎麼操作?
列舉IE與其他瀏覽器不一樣的特性?
99%的網站都需要被重構是那本書上寫的?
什麼叫優雅降級和漸進增強?
是否了解公鑰加密和私鑰加密。
WEB應用從伺服器主動推送Data到客戶端有那些方式?
對Node的優點和缺點提出了自己的看法?
你有用過哪些前端性能優化的方法?
http狀態碼有那些?分別代表是什麼意思?
一個頁面從輸入 URL 到頁面載入顯示完成,這個過程中都發生了什麼?(流程說的越詳細越好)
部分地區用戶反應網站很卡,請問有哪些可能性的原因,以及解決方法?
從打開app到刷新出內容,整個過程中都發生了什麼,如果感覺慢,怎麼定位問題,怎麼解決?
除了前端以外還了解什麼其它技術么?你最最厲害的技能是什麼?
你用的得心應手用的熟練地編輯器&開發環境是什麼樣子?
對前端界面工程師這個職位是怎麼樣理解的?它的前景會怎麼樣?
你怎麼看待Web App 、hybrid App、Native App?
你移動端前端開發的理解?(和 Web 前端開發的主要區別是什麼?)
你對加班的看法?
平時如何管理你的項目?
說說最近最流行的一些東西吧?常去哪些網站?
如何設計突發大規模並發架構?
說說最近最流行的一些東西吧?常去哪些網站?
是否了解開源的工具 bower、npm、yeoman、grunt、gulp,一個 npm 的包里的 package.json 具備的必要的欄位都有哪些?(名稱、版本號,依賴)
每個模塊的代碼結構都應該比較簡單,且每個模塊之間的關系也應該非常清晰,隨著功能和迭代次數越來越多,你會如何去保持這個狀態的?
Git知道branch, diff, merge么?
如何設計突發大規模並發架構?
當團隊人手不足,把功能代碼寫完已經需要加班的情況下,你會做前端代碼的測試嗎?
說說最近最流行的一些東西吧?平時常去哪些網站?
知道什麼是SEO並且怎麼優化么? 知道各種meta data的含義么?
移動端(Android IOS)怎麼做好用戶體驗?
簡單描述一下你做過的移動APP項目研發流程?
你在現在的團隊處於什麼樣的角色,起到了什麼明顯的作用?
你認為怎樣才是全端工程師(Full Stack developer)?
介紹一個你最得意的作品吧?
你有自己的技術博客嗎,用了哪些技術?
對前端安全有什麼看法?
是否了解Web注入攻擊,說下原理,最常見的兩種攻擊(XSS 和 CSRF)了解到什麼程度?
項目中遇到國哪些印象深刻的技術難題,具體是什麼問題,怎麼解決?。
最近在學什麼東西?
你的優點是什麼?缺點是什麼?
如何管理前端團隊?
最近在學什麼?能談談你未來3,5年給自己的規劃嗎?
B. Web前端面試指導(五十):CSS樣式書寫有哪些
一、CSS書寫順序
1.位置屬性(position, top, right,z-index, display, float等)
2.大小(width, height, padding,margin)
3.文字系列(font, line-height,letter-spacing, color- text-align等)
4.背景(background, border等)
5.其他(animation, transition等)
二、CSS書寫規范
1.使用CSS縮寫屬性
CSS有些屬性是可以縮寫的,比如padding,margin,font等等,這樣精簡代碼同時又能提高用戶的閱讀體驗。
2.去掉小數點前的「0」
3.簡寫命名
很多用戶都喜歡簡寫類名,但前提是要讓人看懂你的命名才能簡寫哦!
4.16進制顏色代碼縮寫
有些顏色代碼是可以縮寫的,我們就盡量縮寫吧,提高用戶體驗為主。
5連字元CSS選擇器命名規范
1)長名稱或片語可以使用中橫線來為選擇器命名。
2)不建議使用「_」下劃線來命名CSS選擇器,為什麼呢?
輸入的時候少按一個shift鍵;瀏覽器兼容問題(比如使用_tips的選擇器命名,在IE6是無效的)能良好區分JavaScript變數命名(JS變數命名是用「_」)
6.不要隨意使用id
id在JS是唯一的,不能多次使用,而使用class類選擇器卻可以重復使用,另外id的優先順序優先與class,所以id應該按需使用,而不能濫用。
7.為選擇器添加狀態前綴
有時候可以給選擇器添加一個表示狀態的前綴,讓語義更明了,比如下圖是添加了「.is-」前綴。
三、CSS命名規范
常用的CSS命名規則
頭:header
內容:content/Container
尾:footer
導航:nav
側欄:sidebar
欄目:column
頁面外圍控制整體布局寬度:wrapper
左右中:left right center
登錄條:loginbar
標志:logo
廣告:banner
頁面主體:main
熱點:hot
新聞:news
下載:download
子導航:subnav
菜單:menu
子菜單:submenu
搜索:search
友情鏈接:friendlink
頁腳:footer
版權:right
滾動:scroll
內容:content
標簽:tags
文章列表:list
提示信息:msg
小技巧:tips
欄目標題:title
加入:joinus
指南:guide
服務:service
注冊:regsiter
狀態:status
投票:vote
合作夥伴:partner
ID的命名-頁面結構
容器: container
頁頭:header
內容:content/container
頁面主體:main
頁尾:footer
導航:nav
側欄:sidebar
欄目:column
頁面外圍控制整體布局寬度:wrapper
左右中:left right center
ID的命名-導航
導航:nav
主導航:mainnav
子導航:subnav
頂導航:topnav
邊導航:sidebar
左導航:leftsidebar
右導航:rightsidebar
菜單:menu
子菜單:submenu
標題: title
摘要: summary
ID的命名-功能
標志:logo
廣告:banner
登陸:login
登錄條:loginbar
注冊:register
搜索:search
功能區:shop
標題:title
加入:joinus
狀態:status
按鈕:btn
滾動:scroll
標簽頁:tab
文章列表:list
提示信息:msg
當前的: current
小技巧:tips
圖標: icon
注釋:note
指南:guild
服務:service
熱點:hot
新聞:news
下載:download
投票:vote
合作夥伴:partner
友情鏈接:link
版權:right
四、注釋規范
/* Header */
內容區
/* End Header */
五、注意事項
1.一律小寫;
2.盡量用英文;
3.盡量不縮寫,除非一看就明白的單詞。
六、CSS樣式表文件命名
主要的 master.css
模塊 mole.css
基本共用 base.css
布局、版面 layout.css
主題 themes.css
專欄 columns.css
文字 font.css
表單 forms.css
補丁 mend.css
列印 print.css
C. 前端面試要點
想要通過前端面試順利進入一線大廠成就高薪前端夢。那麼首先,我們得知道前端面試中,社招和校招究竟有啥區別?
對於前端開發來說,如果說社招更看重對前端技術體系的深入理解,以及解決問題的能力話,那校招更看重的其實是基本功和學習能力(或者說是潛力)。
但其實,無論是社招還是校招,面試的時候都會問到一些曾經操作過的項目,尤其是大廠,或者熱門高薪部門,面試官除必問的技術經驗外,也會對技術深度進行一個基礎的考核,那在這種情況下如何hold住大廠面試呢?
前端面試三要素:簡歷、個人介紹、技術能力。下面,就來分別聊一聊。
1、簡歷篩選關:
HR一般會去看簡歷中所提的技術棧是否匹配,怎麼看呢?我們可以抓住簡歷中的技術名詞,一般來說如果一點技術名詞都沒有提到,那麼大概有以下幾種可能:很水、很牛但概率很小、不會寫簡歷。所以,一部分人可能會因為簡歷的問題沒有了面試機會,這點是需要非常注意的。
2、個人介紹關:
通過了簡歷篩選階段,就真正到了面試環節。這時候一定要准備好一段最多3分鍾的個人介紹。請注意,最多3分鍾!言簡意賅的說明自己的工作時間,擅長技術棧和自己的工作預期。
3、項目經驗表達:
對前端開發學習者而言,JS並不陌生,但大廠的JS面試題卻總是顯得很「陌生」,怎麼樣能夠真正做到深入理解與高級應用?這不僅是面試過程中對前端求職者的要求,也是大多數前端開發者的痛點。
大廠面試中,面試官除了關注你的項目經驗外,還往往喜歡和面試者深入探討前端某些技術領域成體系的前端知識。比如:模塊化、非同步解決方案、網路、框架及原理、線程等,但在與面試官的正面battle中,求職者總會敗下陣來。
所以,建議大家在Web前端面試前一定要注重這三個方面的內容。注重了這些想找找到一份適合的Web前端開發工作並不是難事。
D. 前端面試一般問什麼
web前端面試會問人事方面的內容和web前端技術的內容;
人事的面試
web前端人事面試方面,需要注意如何自我介紹、性格有哪些優劣勢、職業規劃方向是什麼、你的特長是什麼、對於加班之類你是怎麼看待等人事面試內容;
web前端技術的面試
技術面試,需要注意HTML+CSS+JavaScript以及JS主流框架的使用,比如Vue、React等,前端相關技術,比如tcp握手協議、網路安全、後端技術等;
對於web前端面試准備,建議你去看「決勝前端」(min app),它裡麵包含了很多web前端技術面試、人事面試等面試真題,而且針對面試題做了詳細的分析與解答。
我給你截圖看一下例子吧
E. Web前端最全面試寶典- Html篇
HTML
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.行內元素有哪些?塊級元素有哪些?
塊級元素:div p h1 h2 h3 h4 form ul
行內元素: a b br i span input select
5.HTML全局屬性(global attribute)有哪些
參考資料:MDN: html global attribute或者W3C HTML global-attributes
accesskey
:設置快捷鍵,提供快速訪問元素如aaa在windows下的firefox中按alt + shift + a
可激活元素
class
:為元素設置類標識,多個類名用空格分開,CSS和javascript可通過class屬性獲取元素
contenteditable
: 指定元素內容是否可編輯
contextmenu
: 自定義滑鼠右鍵彈出菜單內容
data-*
: 為元素增加自定義屬性
dir
: 設置元素文本方向
draggable
: 設置元素是否可拖拽
dropzone
: 設置元素拖放類型: , move, link
hidden
: 表示一個元素是否與文檔。樣式上會導致元素不顯示,但是不能用這個屬性實現樣式效果
id
: 元素id,文檔內唯一
lang
: 元素內容的的語言
spellcheck
: 是否啟動拼寫和語法檢查
style
: 行內css樣式
tabindex
: 設置元素可以獲得焦點,通過tab可以導航
title
: 元素相關的建議信息
translate
: 元素和子孫節點內容是否需要本地化
6.什麼是web語義化,有什麼好處
web語義化是指通過HTML標記表示頁麵包含的信息,包含了HTML標簽的語義化和css命名的語義化。 HTML標簽的語義化是指:通過使用包含語義的標簽(如h1-h6)恰當地表示文檔結構 css命名的語義化是指:為html標簽添加有意義的class,id補充未表達的語義,如Microformat通過添加符合規則的class描述信息 為什麼需要語義化:
去掉樣式後頁面呈現清晰的結構
盲人使用讀屏器更好地閱讀
搜索引擎更好地理解頁面,有利於收錄
便團隊項目的可持續運作及維護
7.html5有哪些新特性、移除了那些元素?如何處理HTML5新標簽的瀏覽器兼容問題?如何區分 HTML 和 HTML5?
新特性:
HTML5 現在已經不是 SGML 的子集,主要是關於圖像,位置,存儲,多任務等功能的增加。
拖拽釋放(Drag and drop) API
語義化更好的內容標簽(header,nav,footer,aside,article,section)
音頻、視頻API(audio,video)
畫布(Canvas) API
地理(Geolocation) API
本地離線存儲 localStorage 長期存儲數據,瀏覽器關閉後數據不丟失;
sessionStorage 的數據在瀏覽器關閉後自動刪除
表單控制項,calendar、date、time、email、url、search
新的技術webworker, websocket, Geolocation
移除的元素:
純表現的元素:basefont,big,center,font, s,strike,tt,u;
對可用性產生負面影響的元素:frame,frameset,noframes;
支持HTML5新標簽:
IE8/IE7/IE6支持通過 document.createElement 方法產生的標簽,可以利用這一特性讓這些瀏覽器支持 HTML5 新標簽,瀏覽器支持新標簽後,還需要添加標簽默認的樣式(當然最好的方式是直接使用成熟的框架、使用最多的是html5shiv框架):
如何區分:
DOCTYPE聲明新增的結構元素、功能元素
8. HTML5 存儲類型有什麼區別?
HTML5 能夠本地存儲數據,在之前都是使用 cookies 使用的。HTML5 提供了下面兩種本地存儲方案:
localStorage - 沒有時間限制的數據存儲,數據永遠不會過期,關閉瀏覽器也不會丟失
sessionStorage - 針對一個 session 的數據存儲,同一個會話中的頁面才能訪問並且當會話結束後數據也隨之銷毀。
9. HTML5 標准提供了哪些新的API?
1:canvas,不用多說,可以畫出很多絢麗的圖形,甚至可以直接做出偽3D游戲。
2:媒體控制,也很好理解(直譯就是回放功能,假如只用html5.0以下的標簽寫,以前的音樂播放是不可能實現滾動條的。)
3:離線網頁程序,可以把資源文件完全緩存在客戶端,並且通過js的一些方法清空緩存
4:文檔編輯,應該是更好的支持對文檔的編輯。
5:拖動,可以將文件拖動到某些區域上傳
6:跨文檔請求,websocket,一種更加高效的通訊方式
7:歷史管理,可以通過js管理和插入歷史記錄
8:MIME頭自定義
9:客戶端數據存儲,localstoage sessionstoage
10:地理位置共享
11:本地資料庫
12:索引資料庫
10.HTML5 應用程序緩存和瀏覽器緩存有什麼區別?
HTML5 引入了應用程序緩存,這意味著 web 應用可進行緩存,並可在沒有網際網路連接時進行訪問。
應用程序緩存為應用帶來三個優勢:
離線瀏覽 - 用戶可在應用離線時使用它們
速度 - 已緩存資源載入得更快
減少伺服器負載 - 瀏覽器將只從伺服器下載更新過或更改過的資源。
11.常用那幾種瀏覽器測試?有哪些內核(Layout Engine)?
(Q1)瀏覽器:IE,Chrome,FireFox,Safari,Opera。
(Q2)內核:Trident,Gecko,Presto,Webkit。
12.請描述一下 cookies,sessionStorage 和 localStorage 的區別?
cookie在瀏覽器和伺服器間來回傳遞。 sessionStorage和localStorage不會
sessionStorage和localStorage的存儲空間更大;
sessionStorage和localStorage有更多豐富易用的介面;
sessionStorage和localStorage各自獨立的存儲空間;
13.如何實現瀏覽器內多個標簽頁之間的通信?
調用localstorge、cookies等本地存儲方式
14.請寫出localStorage對象的常用方法。
存儲 - localStorage.setItem(key, value) - 如果key存在,更新value
獲取 - localStorage.getItem(key) - 如果key不存在,返回null
刪除 - localStorage.removeItem(key) - 刪除key對應的數據
全部清除 - localStorage.clear() - 清空localStorage中所有數據
遍歷 - localStorage.length
遍歷 - localStorage.key(index)
15.如何在HTML5中啟用應用程序緩存?
<html manifest="fileName.appcache">
每個指定了manifest的頁面在用戶對其訪問時都會被緩存。
.appcache是manifest文件的擴展名
16.html5 離線存儲
Html5的一個重要特性就是離線存儲,所謂的離線存儲就是將一些資源文件保存在本地,這樣後續的頁面重新載入將使用本地資源文件,在離線情況下可以繼續訪問web應用,同時通過一定的手法(更新相關文件或者使用相關API),可以更新、刪除離線存儲等操作。
Html5的離線存儲使用一個manifest文件來標明哪些文件是需要被存儲的,使用如 <html manifest='offline.manifest'> 來引入一個manifest文件,這個文件的路徑可以是相對的,也可以是絕對的,如果你的web應用很多,而且希望能集中管理manifest文件,那麼靜態文件伺服器是個不錯的選擇。
17.HTML5 Canvas 元素有什麼用?
Canvas 元素用於在網頁上繪制圖形,該元素標簽強大之處在於可以直接在 HTML 上進行圖形操作
F. web前端面試怎麼說
面試方法
代碼編寫筆試
問答式
做過最滿意的項目是什麼?
項目背景
為什麼要做這件事情?
最終達到什麼效果?
你處於什麼樣的角色,起到了什麼方面的作用?
在項目中遇到什麼技術問題?具體是如何解決的?
如果再做這個項目,你會在哪些方面進行改善?
描述一個你遇到過的技術問題,你是如何解決的?
這個問題很常見,有沒有遇到過很不常見的問題?比如在網上根本搜不到解決方法的?
是否有設計過通用的組件?
請設計一個 Dialog(彈出層) / Suggestion(自動完成) / Slider(圖片輪播) 等組件
你會提供什麼介面?
調用過程是怎樣的?可能會遇到什麼細節問題?
你最擅長的技術是什麼?
你覺得你在這個技術上的水平到什麼程度了?你覺得最高級別應該是怎樣的?
瀏覽器及性能
這些優化方法背後的原理是什麼?
除了這些常規的,你還了解什麼最新的方法么?
(這個問既考察技術深度又考察技術廣度,其實要答好是相當難的,注意越詳細越好)
一個頁面從輸入 URL 到頁面載入完的過程中都發生了什麼事情?越詳細越好
談一下你所知道的頁面性能優化方法?
如何分析頁面性能?
其它
除了前端以外還了解什麼其它技術么?
對計算機基礎的了解情況,比如常見數據結構、編譯原理等
最近在學什麼?接下來半年你打算學習什麼?
做什麼方面的事情最讓你有成就感?需求設計?規劃?具體開發?
後續想做什麼?3 年後你希望自己是什麼水平?
在之前做過的項目中,有沒有什麼功能或改進點是由你提出來的?
是否有參與和改進其它開源項目
過程遵循 STAR 面試法 。
校招和社招的是不一樣的,校招會更加關注基礎知識,而社招會更加關注之前做過的項目情況。
項目相關
面試其實說白了就是根據一個人之前的經歷,來判斷出後續這人會做得怎樣,如果你之前從沒做成過一件事情,憑什麼讓別人相信你之後能做成呢?因此無論哪裡的面試都會問你之前做過的項目
項目可以是多人協助開發一個產品,也可以是自己個人做過的業余應用,只需介紹 1、2 個就夠了,需要注意的是 1 + 1 != 2,做了兩個平庸的項目不如做了一個好項目。
一般來說會問如下幾方面的問題:
技術相關 - 1 面
技術一面主要判斷對基礎知識的掌握
技術二面主要判斷技術深度及廣度
興趣相關
主動性相關
G. 資深HR揭秘:Web前端面試技巧有哪些
Web前端面試技巧
Web前端工程師的面試前的准備:
1. 自我介紹
准備不同時間版本的1 分鍾、3 分鍾的自我介紹.反復練習,並脫稿,但不是背誦.因為背的話自我介紹就顯得十分的生硬,一定要用自然的語言將自我介紹說出來.這樣可以給面試官留下很好的第一印象.
2. 預演
搜索一些你應聘的公司和職位,在宿舍里、家裡,先自己預演下,可能會被問及的各種問題和答案.即使你不能猜中所有問題--當然HR也不會面面俱到、一直不停的提問,最關鍵詞的只有那麼幾個.思考問題的過程會讓你減輕緊張而且在面試時心裡有底.
3. 積極自我暗示
在群面的時候,我們可能會因為別人的發言而繞亂了自己的思路.這時候千萬不要亂,適當的做深呼吸調整一下自己,做到沉著冷靜,整理好自己的思路,努力回憶自己所學和所掌握的知識,給自己積極的心理暗示,一句話:相信自己能行!你是最棒的.
4. 面試簡歷一定要准備充分
面試你的人可能不止1 個.預先料到這點.並准備好會顯得你做事正規、細致.沒有比當被要求提供多一份簡歷而你卻沒有.更能表明你缺乏准備的事了.你說呢?
5. 完整而認真的填寫公司要求的表格
盡管你認為它們用處不大、盡管你帶了簡歷來,很多公司都會要求你填一張表.你願意並且有始有終地填完這張表,會傳達出你做事正規、做事善始善終.
面試過程:
1. 給面試官留下深刻的印象
最初和最後的五分鍾是面試中最關鍵的,在這段時間里決定了你留給人的第一印象和臨別印象以及主考人是否欣賞你.最初的五分鍾內應當主動溝通,離開的時候,要確定你已經被記住了.要讓人產生好感,富於熱情.人們都喜歡聘請容易相處且為公司自豪的人.要正規穩重,也要表現你的精力和興趣.
2. 學會自我營銷
營銷自己十分重要,將你所有的優勢推銷出去,包括你的技術資格,一般能力和性格優點,僱主只在乎兩點:你的資歷憑證、你的個人性格.你能在以往業績的基礎上工作並適應公司文化嗎?談一下你性格中的積極方面並結合例子告訴對方你在具體工作中會怎麼做.
展示你勤奮工作追求團體目標的能力,大多數主考人都希望找一位有創造力、性格良好、能夠融入到團體之中的人.你要必須通過強調自己給對方帶來的好處來說服對方你兩者皆優.
H. 前端面試一問三不知怎麼辦
前端面試一問三不知的時候,千萬別慌亂,可以先停一停和面試官說這個問題你需要思考一下再回答,或者說你因為太緊張之類的一時想不起來答案。
有些面試官會直接電話過去要求面試,由於面試者(尤其是學生)處於弱勢方,可能並不會拒絕面試要求,但並不意味著面試者處於最佳的物理和精神狀態下,有可能會導致面試者不能很好的發揮自己原有的實力。所以如果面試官突然打電話過來。
沒有準備好的話,不要怕冒犯面試官,一定要另外約個時間,面試官肯定會再打過來的。遭到否定面試官有可能會否定你描述的一些東西,有可能是你字眼寫的太過,比如將「熟悉」的東西寫成了「精通」,勾起了面試官的「好奇」。
有可能故意試壓,考驗你的反應,但遇到否定的時候,不要急於反駁或者是手足無措,而是詢問自省和主動討論。氣場不和有的面試官性格嚴謹沉悶,而面試者可能思維活躍,整個面試過程可能會變成面試官不停的打斷面試者讓其思維聚焦。
而面試者感到思維不停被打斷,很是氣惱,影響發揮。這種情況不可避免,但遇到這樣的面試官,請保持謙和的態度,重點是展示自己技術的廣度、深度,氣場不和並不會產生決定性的影響,面試官也不會因為這樣的原因而給與錯誤的評判。
盡量留下好的印象。結束通知有的面試官會在面試結束後說:「我的問題問完了,如果有進一步消息的話,我們會再聯系你」。面試的大部分結果,其實當場就出來了,如果你感覺給出結果的時間點不夠明確,可以反問他:「如果三天內沒有聯系,是不是就代表沒有通過?」省得讓你懷有不確切的希望。
最後,還可以挽留下面試官,講講這場面試中你的一些疑惑,獲得面試官的反饋,也可以知道自己目前哪一方面做得不足。面試中面對不會的問題面試中遇到問題不會回答,這是非常正常的,畢竟大家在學習過程中遇到的問題,跟我們在工作中遇到的問題是非常不一樣的。
除此之外,我們看問題的角度,也是有差別很大的。舉個例子,很多人都在看ReactFiber,但是如果問你們,為什麼要有Fiber這個東西,可能很多人都回答不上來,因為大家只在社區裡面看到說,Fiber是怎麼工作的啊。
但是為什麼要有Fiber?如果沒有會怎樣,而這種思考,其實是非常底層的。我相信,很多人可能都沒有思考過。那如果遇到的問題不會,你可以先選擇不會,說我覺得自己沒有信心能答出這個問題,當然我更希望聽到你說。
我現在不會,但是你給我兩分鍾思考一下,我想一下這個問題有沒有答案?我覺得這是一個很好的思考習慣,首先你在面對不會的東西是坦然的,我當下不會,很正常,我之前沒有思考過這個問題嘛,那我們再花兩分鍾思考一下。
給一個初步的答案。所以說遇到問題,也不用不會就不會,也可以有一個積極的方式回應。從面試官的角度來說,面試中考察的題目,並不是僅僅考察這道題目本身,題目的對錯並不跟最終結果直接掛鉤。面試官更希望以題目為契機。
考察面試者分析問題,解決問題的能力,以及交流過程中所體現的邏輯推理和思維方式等。跟面試官聊業務業務跟項目是完全不一樣的東西,業務認知和思考也是很重要的一個考察點,這方面面試官可能會問兩個點:業務場景和技術突破。
業務場景:面試官會詢問面試者他們的產品、業務模式、商業模式等,了解下面試者對於產品的誕生、定位、發展的認知。技術突破:技術與業務相結合這點在阿里也是一直在說但鮮有人做的非常好的地方,所以有的時候也會考察面試者。
看看他們所做的技術是如何從業務出發、給業務帶來了哪些改變以及如何去評估兩者之間產生的結果。面試結束反向互動面試官在掛斷之前,基本會給與候選人反問的機會,一般會表述為「你有什麼要問我的嗎」?無論面試的怎樣。
都希望你能說出心中的疑惑,比如面試中的某個題目、整體的評價反饋、你的建議或者了解所負責的業務,所在的團隊等等,而從面試官的角度來看,如果候選人願意反問你問題,至少能證明他是個好學的人。所以不要放棄這個互動的機會。
面試反饋每場面試結束後,面試官都會在系統里留下面試反饋,如果面試失敗,簡歷會放在人才庫里,很多人會在其中撈取簡歷,以後的面試官也可以看到之前所有的面試記錄,之所以講到這一點,是希望大家在面試中能夠保持謙和積極的心態。
認真面對每一場面試,即使這場面試沒有成功,但如果展示了好的品質,也會增加被發掘的機會,為你以後面試成功鋪路。保持聯絡如果跟面試官聊的比較好,可以請求加個微信之類的,面試是一個長期的事情,哪怕此次面試沒有通過。
以後還可能面試進來的,與面試官保持聯絡。前端面試題筆記面試會了,面試題也不能落下,這套面試筆記除了有CSS、JS、Vue、React、性能優化、伺服器埠、設計模式、數據結構和演算法面試題外,加了手寫代碼面試題。
這下面試官讓我們寫代碼也不怕啦!CSS問題flex布局css3的新特性img中alt和title的區別用純CSS創建一個三角形如何理解CSS的盒子模型?如何讓一個div水平居中如何讓一個div水平垂直居中如何清除浮動。
I. 求《前端程序員面試筆試寶典》
本書是一本前端程序員面試筆試的應試類用書,在內容上,除了講解如何解答前端程序員面試筆試問題,還引入了相關知識點輔以說明,讓讀者能夠更加容易理解。
本書包括前端程序員面試筆試過程中各類知識點,在題目的廣度上,搜集了近3年來多家IT企業針對前端崗位的筆試面試真題。在講解的深度上,本書由淺入深,庖丁解牛式地分析每一個知識點,並提煉歸納,同時,引入相關知識點,並對其進行深度剖析,讓讀者不僅能夠理解這個知識點,還能在遇到相似問題的時候,也能游刃有餘地解決。本書根據知識點進行分類,結構合理,條理清晰,便於讀者學習與查閱。
J. 有哪些經典的前端開發面試題及答案解析
行元素與塊元素的區別;
如何清除浮動;
定位方式當中,absolute與fixed、relative的區別;
事件的兼容問題;
Ajax是什麼;
如何優化你的頁面;
響應式布局是什麼等等。
經典的前端面試題至少有近百道,在這里也沒辦法全部給你列出來,你可以看看這個(小-程序),裡面有好幾百道面試真題,也有比較好的答案解析。