天天看點

史上最全前端面試題(含答案)

為了能夠迅速的找到自己想要的資料,把好的文章都收錄到自己的部落格來。等慢慢的成長以後,自己也來寫寫這些問題!

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.事件委托是什麼

讓利用事件冒泡的原理,讓自己的所觸發的事件,讓他的父元素代替執行!

http://www.webasily.com/?p=78 例子可見此連結

14.閉包是什麼,有什麼特性,對頁面有什麼影響

閉包就是能夠讀取其他函數内部變量的函數。

http://blog.csdn.net/gaoshanwudi/article/details/7355794 此連結可檢視(問這個問題的不是一個公司)

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

}

來自IT公司面試手冊

繼續閱讀