❶ 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前端需要注意什麼會面試哪些問題
作為一名HTML5前端工程師,為了工作,為了就業我們免不了要參加各種各樣的面試。為此總結了面試前的注意事項:
第一:注意自己的儀容儀表
面試之前,一定要再次從頭到腳地將自己的儀容儀表檢查一遍。檢查時主要包括,自己的牙縫是不是還有食物殘渣,所以你需要就近找一個衛生間,如果沒有衛生間就近找一個角落也是可以的,但是切記一定不要在大庭廣眾之下。因此,為了給自己整理出著裝的時間請在約定時間前20分鍾到達。
第二:再次檢查面試時所需的資料是否都已帶全
這些資料主要包括:身份證明、學歷文憑證明、個人簡歷、以往作品等等,如果這些東西齊全之後,需要對這些資料做一個整理與排序。因為沒有哪個面試官希望看到面試者拿出一堆「莫名其妙」的東西塞給他,讓他自己再一頁一頁的翻找自己需要的內容,如果說這些資料在面試官手中不小心散落一地,結果可想而知。這樣的求職者在面試官眼中也一定不是一個讓人放心、有條不紊的員工。當然如果檢查時發現資料沒有帶全,也不要緊張。反而你要慶倖幸虧及時檢查,也有足夠的時間組織語言去向面試官解釋。
第三:面試之前將通信工具調成振動或關閉狀態
雖然說面試者與面試官之間是一個平等的關系,但畢竟你是去人家公司求職的,始終處於一個被動的狀態,所以最起碼的尊重還是要做到的。曾經有調查顯示,對於面試過程中接電話或是被電話打斷的求職者,會被HR減分。
第四:等候面試官時,仔細觀察多了解面試公司
在等候面試官時,可以暗自觀察一下公司的大體情況比如員工的著裝風格、公司的LOGO或是貼在牆上的企業文化、公司的環境等等,一來可以在接下來的面試過程中表現出自己對公司的認同感,二來也可以讓自己對求職公司多些了解,以確定是否要接受這里的工作。如果你身邊有公司的資料宣傳架,不妨取一本翻看一下,也會增加HR對你的好感。
第五:放鬆心情,保持自信
面試時一定要保持一定的自信,這樣也會給面試官留下很好的印象。面試只是你步入工作的第一步,即便是失敗了那也是人生重要的經歷。失敗是為了更好的迎接下一個挑戰。
作為一名web前端工程師千萬不要覺得懂技術面試就能萬事大吉了,像以上五點細節性的東西也是一定要掌握的。
面試題系列:
網頁鏈接
❸ 前端面試 問什麼問題
web前端面試會問人事方面的內容和web前端技術的內容;
人事的面試
web前端人事面試方面,需要注意如何自我介紹、性格有哪些優劣勢、職業規劃方向是什麼、你的特長是什麼、對於加班之類你是怎麼看待等人事面試內容;
web前端技術的面試
技術面試,需要注意HTML+CSS+JavaScript以及JS主流框架的使用,比如Vue、React等,前端相關技術,比如tcp握手協議、網路安全、後端技術等;
對於web前端面試准備,建議你去看「決勝前端」(min app),它裡麵包含了很多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)
10.寫出幾種IE6 BUG的解決方法
1.雙邊距BUG float引起的 使用display
2.3像素問題 使用float引起的 使用dislpay:inline -3px
3.超鏈接hover 點擊後失效 使用正確的書寫順序 link visited hover active
4.Ie z-index問題 給父級添加position:relative
5.Png 透明 使用js代碼 改
6.Min-height 最小高度 !Important 解決』
7.select 在ie6下遮蓋 使用iframe嵌套
8.為什麼沒有辦法定義1px左右的寬度容器(IE6默認的行高造成的,使用over:hidden,zoom:0.08 line-height:1px)
11.標簽上title與alt屬性的區別是什麼?
Alt 當圖片不顯示是 用文字代表。
Title 為該屬性提供信息
12.描述css reset的作用和用途。
Reset重置瀏覽器的css默認屬性 瀏覽器的品種不同,樣式不同,然後重置,讓他們統一
13.解釋css sprites,如何使用。
Css 精靈 把一堆小的圖片整合到一張大的圖片上,減輕伺服器對圖片的請求數量
14.瀏覽器標准模式和怪異模式之間的區別是什麼?
盒子模型 渲染模式的不同
使用 window.top.document.compatMode 可顯示為什麼模式
15.你如何對網站的文件和資源進行優化?期待的解決方案包括:
文件合並
文件最小化/文件壓縮
使用CDN託管
緩存的使用
16.什麼是語義化的HTML?
直觀的認識標簽 對於搜索引擎的抓取有好處
17.清除浮動的幾種方式,各自的優缺點
1.使用空標簽清除浮動 clear:both(理論上能清楚任何標簽,,,增加無意義的標簽)
2.使用overflow:auto(空標簽元素清除浮動而不得不增加無意代碼的弊端,,使用zoom:1用於兼容IE)
3.是用afert偽元素清除浮動(用於非IE瀏覽器)
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
}
}
13.事件委託是什麼
讓利用事件冒泡的原理,讓自己的所觸發的事件,讓他的父元素代替執行!
14.閉包是什麼,有什麼特性,對頁面有什麼影響
閉包就是能夠讀取其他函數內部變數的函數。
15.如何阻止事件冒泡和默認事件
canceBubble return false
16.添加 刪除 替換 插入到某個接點的方法
obj.appendChidl()
obj.innersetBefore
obj.replaceChild
obj.removeChild
17.解釋jsonp的原理,以及為什麼不是真正的ajax
動態創建script標簽,回調函數
Ajax是頁面無刷新請求數據操作
18.javascript的本地對象,內置對象和宿主對象
本地對象為array obj regexp等可以new實例化
內置對象為gload Math 等不可以實例化的
宿主為瀏覽器自帶的document,window 等
19.document load 和document ready的區別
Document.onload 是在結構和樣式載入完才執行js
Document.ready原生種沒有這個方法,jquery中有 $().ready(function)
20.」==」和「===」的不同
前者會自動轉換類型
後者不會
21.javascript的同源策略
一段腳本只能讀取來自於同一來源的窗口和文檔的屬性,這里的同一來源指的是主機名、協議和埠號的組合
22.編寫一個數組去重的方法
function oSort(arr)
{
var result ={};
var newArr=[];
for(var i=0;i<arr.length;i++)
{
if(!result[arr])
{
newArr.push(arr)
result[arr]=1
}
}
return newArr
}
❺ 有哪些經典的前端開發面試題及答案解析
行元素與塊元素的區別;
如何清除浮動;
定位方式當中,absolute與fixed、relative的區別;
事件的兼容問題;
Ajax是什麼;
如何優化你的頁面;
響應式布局是什麼等等。
經典的前端面試題至少有近百道,在這里也沒辦法全部給你列出來,你可以看看這個(小-程序),裡面有好幾百道面試真題,也有比較好的答案解析。
❻ web前端面試怎麼介紹
你的筆試題, 根據其做延伸.
你的簡歷, 技術棧、工作外學習情況、項目經驗. 第一頁很重要, 最好都能掌握, 有亮點更好.
面試官額外的延展的知識點, 隨機問,看你運氣和積累(一般會提及到 ES6、解決實際問題的方法、數據結構與演算法都有可能).
刷題, 各種基礎題會幫你快速回憶起來, 比你看書快, 如果基礎不好的話, 看書好好學學吧.
簡歷上自己寫的東西, 要能說出來.
積累, 每次面試不成功就回來填坑吧, 還是有掌握不到位的. 我覺得能堅持下來的話, 找工作只是時間問題.
據公司業務不同, 著重點不一樣, 公司能把你簡歷挑出來, 就說明有用人單位感興趣的部分.
可能你寫的是熟練使用 Vue, 公司也是這個技術棧.
可能你知識寫的全面, 公司想面面你實際掌握怎麼樣.
可能你項目寫的貼合用人單位需要, 比如都是做後台管理的.
封裝過哪些組件?有自己寫過 UI 組件嗎?
什麼是 MVVM , 和 MVC 是什麼區別, 原理是什麼?
父子組件怎麼通信的?
兄弟組件怎麼通信的?
生命周期有哪些, 怎麼用?
Vue 全家桶都用過哪些?具體怎麼用?
盒子模型
如何給未知寬高的圖片垂直居中對齊? 有幾種方法?
移動端的 rem 布局.
前端可以做哪些優化, 或問你 SEO, 基本都問.
清除浮動方式和原理, 基本都問. 幾種方式? 原理? 為什麼要用偽元素? 具體代碼怎麼寫,為什麼這么寫?
清除浮動就會涉及到 BFC 的問題.
給你實際頁面例子, 讓你口述布局或手寫實現細節, 可以使用幾種方法, 怎麼寫兼容性好, 拓展性好.
具體 API 哪個 CSS 版本的?
CSS3 新增了哪些 API?
可能問你哪些 API 是 CSS 哪個版本的? 兼容性怎麼樣.
CSS hack 是什麼? 包含什麼? 怎麼處理兼容性問題?
HTML5 新增了哪些 API? 哪些比較常用? 用來做什麼? 實際怎麼用?
cookie, session, localStrorage, sessionStorage 區別, 具體怎麼用代碼去操作?
變數聲明提升的問題.
閉包的原理, 閉包的各種題, 基本都問.
DOM2 事件流, 冒泡和捕獲問題?
this 指向問題, 一般都是在筆試題里, 拿著問你, 問的比較多.
call 和 apply 區別? 有的還會加問 bind?
面向對象編程中的繼承問題, 原型鏈問題在筆試題里比較常見.
jQuery API , 各種操作 DOM 用法, 還有一些新的 API, 這種在不用 3 大框架的公司會問的很詳細.
可能有些考演算法結構的, 可以了解一下, 一般前端掌握的很少.
Ajax 基本都問, 問的細節可能不同, 比如 get 和 post 有什麼區別?
數組的方法 - es6 以下基本都能熟練使用, 應該會加分不少
字元串的方法 - 拼接, 截取, 帶些正則
數組去重問的挺多的(解法很多, ES6 有很多簡短寫法)
ES6 的 Promise , 很多都會問. 如果公司用框架或者你寫了, 還會問你 Class.
var, let, const區別, 問的多.
棧和隊列結構, 有的會問.
跨域問題: 同源策略, 解決方案, 解決原理(比如 jsonp 的原理), 這里都是高發區.
應對
框架問題: (Vue 舉例, 3框架實質問題差不多, 具體有些差異)
HTML5 + CSS3
JavaScript
❼ 前端面試的H5問題有哪些
前端面試的H5問題匯總:
1.HTML5 為什麼只需要寫 <!DOCTYPE HTML>?
答案解析:
HTML5不基於SGML,因此不需要對DTD進行引用,但是需要DOCTYPE來規范瀏覽器的行為(讓瀏覽器按照他們應該的方式來運行)而HTML4.01基於SGML,所以需要對DTD進行引用,才能告知瀏覽器文檔所使用的文檔類型。
2、行內元素有哪些?塊級元素有哪些? 空(void)元素有那些?
答案解析:
行內元素:a b span img input select strong
塊級元素:div ul ol li dl dt dd h1 h2 h3 h4 p 等
空元素:<br> <hr> <img> <link> <meta>
3、頁面導入樣式時,使用link和@import有什麼區別?
答案解析:
1)link屬於XHTML標簽,而@import是css提供的;
2)頁面被載入時,link會同時被載入,而@import引用的css會等到頁面被載入完再載入;
3)@import只在IE5以上才能識別,而link是XHTML標簽,無兼容問題;
4)link方式的樣式的權重高於@import的權重。
4、html5有哪些新特性、移除了那些元素?如何處理HTML5新標簽的瀏覽器兼容問題?
答案解析:
新特性,新增元素:
1)內容元素:article、footer、header、nav、section
2)表單控制項:calendar、date、time、email、url、search
3)控制項元素:webworker,websockt,Geolocation
移除元素:
1)顯現層元素:basefont,big,center,font,s,strike,tt,u
2)性能較差元素:frame,frameset,noframes
處理兼容問題有兩種方式:
1)IE6/IE7/IE8支持通過document方法產生的標簽,利用這一特性讓這些瀏覽器支持HTML5新標簽。
2)使用是html5shim框架
另外,DOCTYPE聲明的方式是區分HTML和HTML5標志的一個重要因素,此外,還可以根據新增的結構,功能元素來加以區分。
5、如何區分 HTML 和 HTML5?
答案解析:
1)在文檔類型聲明上不同:
HTML是很長的一段代碼,很難記住,而HTML5卻只有簡簡單單的聲明,方便記憶。
2)在結構語義上不同:
HTML:沒有體現結構語義化的標簽,通常都是這樣來命名的<div id="header"></div>,這樣表示網站的頭部。
HTML5:在語義上卻有很大的優勢。提供了一些新的標簽,比如:<header><article><footer>
6、簡述一下你對HTML語義化的理解?
答案解析:
1)用正確的標簽做正確的事情;
2)html語義化讓頁面的內容結構化,結構更清晰,便於對瀏覽器、搜索引擎解析;
3)即使在沒有樣式css情況下也以一種文檔格式顯示,並且是容易閱讀的;
4)搜索引擎的爬蟲也依賴於HTML標記來確定上下文和各個關鍵字的權重,利於SEO;
5)使於都源代碼的人對網站更容易將網站分塊,便於閱讀維護理解。
7、HTML5的離線儲存怎麼使用,工作原理能不能解釋一下?
答案解析:
localStorage 長期存儲數據,瀏覽器關閉後數據不丟失;
sessionStorage 數據在瀏覽器關閉後自動刪除。
8、iframe有那些缺點?
答案解析:
1)在網頁中使用框架結構最大的弊病是搜索引擎的「蜘蛛」程序無法解讀這種頁面;
2)框架結構有時會讓人感到迷惑,頁面很混亂;
9、Doctype作用? 嚴格模式與混雜模式如何區分?它們有何意義?
答案解析:
1)<!Doctype>聲明位於文檔中的最前面,處於<html>標簽之前。告知瀏覽器的解析器,用什麼文檔類型規范來解析這個文檔。
2)嚴格模式的排版和JS運作模式是以該瀏覽器支持的最高標准運行。
3)在混雜模式中,頁面以寬松的向後兼容的方式顯示。模擬老式瀏覽器的行為以防止站點無法工作。
4)DOCTYPE不存在或格式不正確會導致文檔以混雜模式呈現。
10、常見兼容性問題?
1)png24位的圖片在IE6瀏覽器上出現背景;
解決方案是:做成PNG8;
2)瀏覽器默認的 margin 和 padding 不同。
解決方案是:加一個全局的*{margin:0;padding:0;}來統一。
3)IE6雙邊距bug:塊屬性標簽float後,又有橫行的 margin 情況下,在 IE6 顯示 margin 比設置的大。浮動IE產生的雙倍距離 #box{float:left;width:10px;margin:0 0 0 100px;} 這種情況下IE6會產生200px的距離。
解決方法:加上_display:inline,使浮動忽略
4)IE下,可以使用獲取常規屬性的方法來獲取自定義屬性,也可以使用getAttribute()獲取自定義屬性; Firefox下,只能使用getAttribute()獲取自定義屬性。
解決方法:統一通過getAttribute()獲取自定義屬性。
5)IE下,even對象有x,y屬性,但是沒有pageX,pageY屬性,但是沒有x,y屬性;
解決方法:(條件注釋)缺點是在IE瀏覽器下可能會增加額外的HTTP請求數。
6)Chrome中文界面下默認會將小於 12px 的文本強制按照 12px 顯示
解決方法:可通過加入 CSS 屬性 -webkt-text-size-adjust:none;解決
7)超鏈接訪問過後 hover 樣式就不出現了,被點擊訪問過的超鏈接樣式不在具有 hover 和 active ;
解決方法:改變CSS屬性的排列順序:L-V-H-A: a:link{ } a:visited{ } a:hover{ } a:active{ }
11、如何實現瀏覽器內多個標簽頁之間的通信?
答案解析:
調用localstorge、cookies等本地存儲方式
12、webSocket如何兼容低瀏覽器?
答案解析:
Adobe Flash Socket 、 ActiveX HTMLFile (IE) 、 基於 multipart 編碼發送 XHR 、 基於長輪詢的 XHR
13、支持HTML5新標簽
答案解析:
1)IE8/IE7/IE6支持通過 document.createElement 方法產生的標簽,可以利用這一特性讓這些瀏覽器支持 HTML5 新標簽,瀏覽器支持新標簽後,還需要添加標簽默認的樣式;
2)當然最好的方式是直接使用成熟的框架、使用最多的是 html5shim 框架
<!--[if lt IE 9]>
<script> src="http://html5shim.googlecode.com/svn/trunk/html5.js"</script>
<![endif]-->
14、如何區分:DOCTYPE 聲明\新增的結構元素\功能元素,語義化的理解?
答案解析:
1)用正確的標簽做正確的事情;
2)html語義化就是讓頁面的內容結構化,便於對瀏覽器、搜索引擎解析;
3)在沒有樣式 CSS 情況下也以一種文檔格式顯示,並且是容易閱讀的;
4)搜索引擎的爬蟲依賴於標記來確定上下文和各個關鍵字的權重,利用 SEO ;
5)使閱讀源代碼的人對網站更容易將網站分塊,便於閱讀維護理解。
15、介紹一下 CSS 的盒子模型?
答案解析:
1)有兩種,IE 盒子模型、標准 W3C 盒子模型; IE 的 content 部分包含了 border 和 padding;
2)盒模型:內容(content)、填充(padding)、邊界(margin)、邊框(border)。
16、CSS 選擇符有哪些?哪些屬性可以繼承?優先順序演算法如何計算? CSS3 新增偽類有哪些?
答案解析:
1)id 選擇器(#myid)
2)類選擇器(.myclassname)
3)標簽選擇器(div,h1,p)
4)相鄰選擇器(h1 + p)
5)子選擇器(ul > li)
6)後代選擇器(li a)
7)通配符選擇器(* )
8)屬性選擇器( a[rel = "external"])
9)偽類選擇器(a: hover, li: nth - child)
17、可繼承的樣式: font-size font-family color, UL LI DL DD DT
18、不可繼承的樣式:border padding margin width height
19、優先順序就近原則,同權重情況下樣式定義最近者為准
20、載入樣式以最後載入的定位為准;
解析答案:優先順序為: !important > id > class > tag ; important 比 內聯優先順序高
21、CSS3新增偽類舉例:
答案解析:
p:first-of-type 選擇屬於其父元素的首個 <p> 元素的每個 <p> 元素;
p:last-of-type 選擇屬於其父元素的最後 <p> 元素的每個 <p> 元素;
p:only-of-type 選擇屬於其父元素唯一的 <p> 元素的每個 <p> 元素;
p:only-child 選擇屬於其父元素的唯一子元素的每個 <p> 元素;
p:nth-child(2) 選擇屬於其父元素的第二個子元素的每個 <p> 元素;
:enabled :disabled 控製表單控制項的禁用狀態;
:checked 單選框或復選框被選中。
22、如何居中div? 如何居中一個浮動元素?
答案解析:
給div 設置一個寬度,然後添加 margin:0 auto 屬性;div{width:200px; margin:0 auto; }
23、居中一個浮動元素
答案解析:
確定容器的寬高 寬500 高300的層,設置層的外邊距
.div{width:500px;height:300px;margin:-150px 0 0 -250px;position:relative;background:green;left:50%;頭:50%}
24、css3有哪些新特性?
答案解析:
CSS3 實現圓角(border-radius:8px;),陰影(box-shadow:10px),對文字加特效(text-shadow),線性漸變(gradient),旋轉(transform)
transform:rotate(9deg) scale(0.85,0.90) translate(0px,-30px) skew(-9deg,0deg);//旋轉,縮放,定位,傾斜
增加了更多的 css 選擇器 多背景 rgba
25、為什麼要初始化 CSS 樣式
答案解析:
因為瀏覽器的兼容問題,不同瀏覽器對有些標簽的默認值是不同的,如果沒對 CSS 初始化往往會出現瀏覽器之間的頁面顯示差異。
當然,初始化樣式會對 SEO 有一定的影響,但魚和熊掌不可兼得,但力求影響最小的情況下初始化。
最簡單的初始化方法是:*{padding:0;margin:0} (不建議)
淘寶的樣式初始化:
body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset, legend, button, input,
textarea, th, td { margin:0; padding:0; }
body, button, input, select, textarea { font:12px/1.5tahoma, arial, \5b8b\4f53; }
h1, h2, h3, h4, h5, h6{ font-size:100%; }
address, cite, dfn, em, var { font-style:normal; }
code, kbd, pre, samp { font-family:couriernew, courier, monospace; }
small{ font-size:12px; }
ul, ol { list-style:none; }
a { text-decoration:none; }
a:hover { text-decoration:underline; }
sup { vertical-align:text-top; }
sub{ vertical-align:text-bottom; }
legend { color:#000; }
fieldset, img { border:0; }
button, input, select, textarea { font-size:100%; } table { border-collapse:collapse; border-spacing:0; }
26、display:inline-block 什麼時候會顯示間隙?
答案解析:
移除空格,使用margin 負值、使用 font-size:0、letter-spacing 、word-spacing
27、使用 CSS 預處理器嗎?喜歡哪個?
答案解析:SASS
28、什麼是盒子模型?
答案解析:
在網頁中,一個元素佔有空間的大小由幾個部分構成,其中包括元素的內容(content),元素的內邊距(padding),元素的邊框(border),元素的外邊距(margin)四個部分。這四個部分佔有的空間中,有的部分可以顯示相應的內容,而有的部分只用來分隔相鄰的區域或區域。4個部分一起構成了css中元素的盒模型。
29、CSS實現垂直水平居中
答案解析:
一道經典的問題,實現方法有很多種,以下是其中一種實現:
HTML結構:
<divclass="wrapper">
<divclass="content"></div>
</div>
CSS:
.wrapper{position:relative;}
.content{
background-color:#6699FF;
width:200px;
height:200px;
position:absolute; //父元素需要相對定位
top:50%;
left:50%;
margin-top:-100px; //二分之一的height,width
margin-left:
-100px;
}
30、簡述一下src與href的區別
答案解析:
href 是指向網路資源所在位置,建立和當前元素(錨點)或當前文檔(鏈接)之間的鏈接,用於超鏈接。
src是指向外部資源的位置,指向的內容將會嵌入到文檔中當前標簽所在位置;在請求src資源時會將其指向的資源下載並應用到文檔內,例如js腳本,img圖片和frame等元素。當瀏覽器解析到該元素時,會暫停其他資源的下載和處理,直到將該資源載入、編譯、執行完畢,圖片和框架等元素也如此,類似於將所指向資源嵌入當前標簽內。這也是為什麼將js腳本放在底部而不是頭部。
31、簡述同步和非同步的區別
答案解析:
同步是阻塞模式,非同步是非阻塞模式。
同步就是指一個進程在執行某個請求的時候,若該請求需要一段時間才能返回信息,那麼這個進程將會一直等待下去,直到收到返回信息才繼續執行下去;
非同步是指進程不需要一直等下去,而是繼續執行下面的操作,不管其他進程的狀態。當有消息返回時系統會通知進程進行處理,這樣可以提高執行的效率。
32、px和em的區別
答案解析:
px和em都是長度單位,區別是,px的值是固定的,指定是多少就是多少,計算比較容易。em得值不是固定的,並且em會繼承父級元素的字體大小。
瀏覽器的默認字體高都是16px。所以未經調整的瀏覽器都符合: 1em=16px。那麼12px=0.75em, 10px=0.625em
33、瀏覽器的內核分別是什麼?
答案解析:
IE: trident內核
Firefox:gecko內核
Safari:webkit內核
Opera:以前是presto內核,Opera現已改用Google Chrome的Blink內核
Chrome:Blink(基於webkit,Google與Opera Software共同開發)
❽ 你遇到過哪些比較有水準的前端面試題
我原來面試工作時候,面試官出了一個這樣的題,題目是:我兒子叫你的兒子叫爸爸。當時我對於這個問題思考了很久。這個題目答案:是男問女的就是公公,女問女就是婆婆,男問男就是爸爸,女問男就是媽媽。這個題很好的考驗了面試者的邏輯思考能力,還有看待事物的全面性,非常不錯。
❾ 前端面試題目難嗎 如何輕松面對前端面試
從以下五個方面做,可以輕松面對前端面試:
一、基本知識
DOM結構——兩個節點之間可能存在哪些關系以及如何在節點之間任意移動。
DOM操作——怎樣添加、移除、移動、復制、創建和查找節點。
事件——怎樣使用事件以及IE和DOM事件模型之間存在哪些主要差別。
XMLHttpRequest——這是什麼、怎樣完整地執行一次GET請求、怎樣檢測錯誤。
嚴格模式與混雜模式——如何觸發這兩種模式,區分它們有何意義。
盒模型——外邊距、內邊距和邊框之間的關系,IE8以下版本的瀏覽器中的盒模型有什麼不同。
塊級元素與行內元素——怎麼用CSS控制它們、它們怎樣影響周圍的元素以及你覺得應該如何定義它們的樣式。
浮動元素——怎麼使用它們、它們有什麼問題以及怎麼解決這些問題。
HTML與XHTML——二者有什麼區別,你覺得應該使用哪一個並說出理由。
JSON——它是什麼、為什麼應該使用它、到底該怎麼使用它,說出實現細節來。
二、少量提問
現在有一個正顯示著Yahoo!股票價格的頁面。頁面上有一個按鈕,你可以單擊它來刷新價格,但不會重新載入頁面。請你描述一下實現這個功能的過程,假設伺服器會負責准備好正確的股票價格數據。
這個問題牽扯到一組我想要考察的基本知識點:DOM結構、DOM操作、事件處理、XHR和JSON。如果我要求你對換一種處理股票價格的方式,或者 讓你在頁面中顯示其他信息,就可以把更多的知識點包括進來。對於經驗比較豐富應聘者,我也可以自如地擴展要考察的知識范圍,最簡單像JOSN與XML的區別、安全問題、容量問題等等。
我還希望應聘者給出的任何解決方案中都不要使用庫。我想看到最原生態的代碼,你就當頁面中沒有包含任何庫。你說你對哪個庫了解多少多少,但我不能把關於庫的知識作為評判能力的因素,因為庫是會隨時間變化的。
三、解決問題
做為一名前端工程師,最值得高興的事莫過於解決同一個問題會有很多種不同的方法,而你要做的就是找出最合適的方法來。我在提問的時候,經常會在應聘者解釋完一種方法後問他們還有沒有第二種方法。此時我會跟他們說,假設你的這個方法由於種種原因被否決了,那麼你還能不能給出另一種方法。這樣做可以達到 兩個目的。
首先,可以測試出他們是否在毫無意義地復述書本中的東西。不能不承認,某些人確實有過目不忘的天賦,聽他們在那裡滔滔不絕地講,你會覺得他們什麼都明白。可是,只要一跟這些人談到怎麼查找方案無效的原因,以及能否拿出一個新方案來,他們往往就傻眼了。這時候,如果我聽到「我不明白這個方案為什麼不夠 好」之類的反問,心裡立刻就明白我的問題已經超出了他們的能力范圍,而他們只是想拿自己死記硬背的結論來矇混過關。
其次,可以測試出他們已經掌握的(還是那句話,「想都不用想」)瀏覽器技術知識。如果他們對瀏覽器平台的核心知識有較好的理解,想出解決同一問題的不同方案根本沒有那麼難。
注意:所有問題都與瀏覽器技術相關。我不相信出幾道抽象的邏輯題,就能夠考出某人解決Web技術問題的能力。在我看來,這無異於讓素描大師畫肖像,沒有意義,也得不到任何有價值的信息。
四、有激情
要成為一名優秀的前端工程師,最重要的莫過於對自己做的事要有激情。我們技能都不是從學校中或者從研討會上學來的,因此前端工程師必須具備自學能力。瀏覽器技術的變化可謂日新月異,所以也只有不斷提升自己的技能才做得到與時俱進。我雖然不能強迫誰必須多看博客、不斷學習,但想應聘前端工程師的人恐怕還是必須這么做的。
你怎麼知道誰對這種工作有沒有激情?實際上非常簡單。我只問一個簡單的問題:「目前你對什麼Web技術最感興趣?」這個問題永遠不會過期,而且也幾乎不可能出錯……除非你答不上來。就眼下來說,我希望你對這個問題給出的技術中包括WebSocket、HTML、WebGL、客戶端資料庫,等等。只有 對Web開發充滿激情的人,才會堅持不懈地學習新知識、掌握新技能;
五、最後一點
計算機科學或者Web設計方面的知識當然也有用,但那都是基本知識之外的東西。只要基本知識在那兒了,一切就都有了基礎,想擴充知識面也不難。可是,如果等到正式上班以後,還得從頭學習基本技能,那種難度是不可同日而語的。
❿ 前端面試題有哪些
1.1、前端 MV*框架的意義
早期前端都是比較簡單,基本以頁面為工作單元,內容以瀏覽型為主,也偶爾有簡單的表單操作,基本不太需要框架。
隨著 AJAX 的出現,Web2.0的興起,人們可以在頁面上可以做比較復雜的事情了,然後前端框架才真正出現了。
如果是頁面型產品,多數確實不太需要它,因為頁面中的 JavaScript代碼,處理交互的絕對遠遠超過處理模型的,但是如果是應用軟體類產品,這就太需要了。
長期做某個行業軟體的公司,一般都會沉澱下來一些業務組件,主要體現在數據模型、業務規則和業務流程,這些組件基本都存在於後端,在前端很少有相應的組織。
從協作關繫上講,很多前端開發團隊每個成員的職責不是很清晰,有了前端的 MV框架,這個狀況會大有改觀。
之所以感受不到 MV*框架的重要性,是因為Model部分代碼較少,View的相對多一些。如果主要在操作View和Controller,那當然 jQuery 這類庫比較好用了。
1.2、請簡述盒模型
IE6盒子模型與W3C盒子模型。
文檔中的每個元素被描繪為矩形盒子。盒子有四個邊界:外邊距邊界margin, 邊框邊界border, 內邊距邊界padding與內容邊界content。
CSS3中有個box-sizing屬性可以控制盒子的計算方式,
content-box:padding和border不被包含在定義的width和height之內。對象的實際寬度等於設置的width值和border、padding之和。(W3C盒子模型)
border-box:padding和border被包含在定義的width和height之內。對象的實際寬度就等於設置的width值。(IE6盒子模型)
可以關注海碼學院,有大量面試干貨推薦