web面試題及答案
參加web前端面試時,面試者的技術能力能否給面試官展示呢?在面試回答問題中能否獲全勝了呢?以下是小編幫你們整理的web面試題及答案,一起來學習啦。
web面試題及答案(一)
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)
web面試題及答案(二)
1.標簽上title與alt屬性的區別是什么?
Alt 當圖片不顯示是 用文字代表。
Title 為該屬性提供信息
2.描述css reset的作用和用途。
Reset重置瀏覽器的css默認屬性 瀏覽器的品種不同,樣式不同,然后重置,讓他們統一
3.解釋css sprites,如何使用。
Css 精靈 把一堆小的圖片整合到一張大的圖片上,減輕服務器對圖片的請求數量
4.瀏覽器標準模式和怪異模式之間的區別是什么?
盒子模型 渲染模式的不同
使用 window.top.document.compatMode 可顯示為什么模式
5.你如何對網站的文件和資源進行優化?期待的解決方案包括:
文件合并
文件最小化/文件壓縮
使用CDN托管
緩存的使用
6.什么是語義化的HTML?
直觀的認識標簽 對于搜索引擎的抓取有好處
7.清除浮動的幾種方式,各自的優缺點
1.使用空標簽清除浮動 clear:both(理論上能清楚任何標簽,,,增加無意義的標簽)
2.使用overflow:auto(空標簽元素清除浮動而不得不增加無意代碼的弊端,,使用zoom:1用于兼容IE)
3.是用afert偽元素清除浮動(用于非IE瀏覽器)
8、Doctype作用? 嚴格模式與混雜模式如何區分?它們有何意義?
(1)、聲明位于文檔中的最前面,處于標簽之前。告知瀏覽器的解析器,用什么文檔類型規范來解析這個文檔。
(2)、嚴格模式的排版和 JS 運作模式是 以該瀏覽器支持的最高標準運行。
(3)、在混雜模式中,頁面以寬松的向后兼容的方式顯示。模擬老式瀏覽器的行為以防止站點無法工作。
(4)、DOCTYPE不存在或格式不正確會導致文檔以混雜模式呈現。
9、行內元素有哪些?塊級元素有哪些?
(1)CSS規范規定,每個元素都有display屬性,確定該元素的類型,每個元素都有默認的display值, 比如div默認display屬性值為“block”,成為“塊級”元素; span默認display屬性值為“inline”,是“行內”元素。
(2)行內元素有:a b span img input select strong(強調的語氣) 塊級元素有:div ulol li dl dtdd h1 h2 h3 h4…p
10、link 和@import 的區別是?
(1)link屬于XHTML標簽,而@import是CSS提供的;
(2)頁面被加載的時,link會同時被加載,而@import引用的CSS會等到頁面被加載完再加載;
(3)import只在IE5以上才能識別,而link是XHTML標簽,無兼容問題;
(4)link方式的樣式的權重高于@import的權重.
11、瀏覽器的內核分別是什么?
IE瀏覽器的內核Trident、Mozilla的Gecko、Chrome的Blink(WebKit的分支)、Opera內核原為Presto,現為Blink;
12、HTML5有哪些新特性?如何處理HTML5新標簽的瀏覽器兼容問題?如何區分 HTML 和 HTML5?
HTML5 現在已經不是 SGML 的子集,主要是關于圖像,位置,存儲,多任務等功能的增加。
繪畫 canvas 用于媒介回放的 video 和 audio 元素 本地離線存儲 localStorage 長期存儲數據,瀏覽器關閉后數據不丟失; sessionStorage 的數據在瀏覽器關閉后自動刪除 語意化更好的內容元素,比如 article、footer、header、nav、section 表單控件,calendar、date、time、email、url、search 新的技術webworker, websockt, Geolocation
web面試題及答案(三)
1.說出Servlet的生命周期,并說出Servlet和CGI的區別?
Web容器加載servlet并將其實例化后,servlet生命周期開始,容器運行其init方法進行servlet的初始化,請求到達時運行其service方法,service方法自動派遣運行于請求對應的doXXX方法(doGet,doPost)等,當服務器決定將實例銷毀的時候調用其destroy方法。與CGI的區別在與servlet處于服務器進程中,它通過多線程方式運行其service方法,一個實例可以服務于多個請求,并且其實例一般不會銷毀,而CGI對每個請求都產生新的進程,服務完成后就銷毀,所以效率上低于servlet。
2.forward和redirect的區別?
forward是容器中控制權的轉向,是服務器請求資源,服務器直接訪問目標地址的URL,把那個URL的響應內容讀取過來,然后把這些內容再發給瀏覽器,瀏覽器根本不知道服務器發送的內容是從哪兒來的,所以它的地址欄中還是原來的地址。
redirect就是服務器端根據邏輯,發送一個狀態碼,告訴瀏覽器重新去請求那個地址,一般來說瀏覽器會用剛才請求的所有參數重新請求,所以session,request參數都可以獲取,并且從瀏覽器的地址欄中可以看到跳轉后的鏈接地址。
前者更加高效,在前者可以滿足需要時,盡量使用forward()方法,也有助于隱藏實際的鏈接;在有些情況下,比如需要跳轉到一個其它服務器上的資源,則必須使用sendRedirect()方法。
3.JSP中動態include與靜態include的區別?
動態include用jsp:include動作實現
它總是會檢查所包含文件中的變化,適合用于包含動態頁面,并且可以帶參數;靜態include用include偽碼實現,它不會檢查所含文件的變化,適用于包含靜態頁面
4.JSP的有哪些內置對象,作用分別是什么?
request:表示HttpServletRequest對象,它包含了有關瀏覽器請求的信息,并且提供了幾個用于獲取cookie,header和session數據的有用方法;
response:表示HttpServletResponse對象,并提供了幾個用于設置送回瀏覽器的響應的方法(如cookies,頭信息等。)
pageContext:網頁的屬性在這里管理;
session:表示一個請求的javax.servlet.http.HttpSession對象,session可以存儲用戶的狀態信息;
application:表示一個javax.servlet.ServletContext對象,這有助于查找有關servlet引擎和servlet環境的信息;
out:是javax.jsp.JspWriter的一個實例,并提供了幾個方法使你能用于向瀏覽器回送輸出結果;
config:表示一個javax.servlet.ServletConfig對象,該對象用于存取servlet實例的初始化參數;
page:表示從該頁面產生的一個servlet實例;
exception:針對錯誤網頁,未捕捉的例外。
5.JSP的常用指令?
6.JSP有哪些動作,作用分別是什么?
JSP共有以下6種基本動作:
jsp:include:在頁面被請求的時候引入一個文件;
jsp:useBean:尋找或者實例化一個JavaBean;
jsp:setProperty:設置JavaBean的屬性;
jsp:getProperty:輸出某個JavaBean的屬性;
jsp:forward:把請求轉到一個新的頁面;
jsp:plugin:根據瀏覽器類型為Java插件生成object標記。
7.GET和POST的區別?
form中的get和post方法,在數據傳輸過程中分別對應了HTTP協議中的GET和POST方法。二者主要區別如下:
?、?Get是用來從服務器上獲得數據,而Post是用來向服務器上傳遞數據;
② Get將表單中數據按照variable=value的形式,添加到action所指向的URL后面,并且兩者使用“?”連接,而各個變量之間使用“&”連接;Post是將表單中的數據放在form的數據體中,按照變量和值相對應的方式,傳遞到action所指向URL;
③ Get是不安全的,因為在傳輸過程,數據被放在請求的URL中;Post的所有操作對用戶來說都是不可見的;
④ Get傳輸的數據量小,這主要是因為受URL長度限制;而Post可以傳輸大量的數據,所以在上傳文件只能使用Post;
?、?Get限制form表單的數據集必須為ASCII字符,而Post支持整個ISO10646字符集;
?、?Get是from的默認方法。
8.常用的web容器和開發工具?
最常用的容器包含:tomcat、weblogic、
開發工具有:eclipse,jbuilder,JCreator
9.JSP和Servlet有哪些相同點和不同點,它們之間的聯系是什么?
Jsp是servlet技術的擴展,本質上是servlet的簡易方式,更強調應用的視圖表達。JSP編譯后是“servlet類”。Servlet和JSP最主要的不同點在于,servlet的應用邏輯是在Java文件中,并且完全從表示層中的HTML里分離開來。而JSP的情況是Java和HTML可以組合成一個擴展名為.jsp的文件。JSP側重于視圖,servlet主要用于控制邏輯。