前端面試題

1掷匠、Doctype作用虫蝶?嚴格模式與混雜模式如何區(qū)分?它們有何意義?
答:作用是告訴的html使用的那個版本的html協(xié)議寫的.按照聲明的協(xié)議執(zhí)行.怪異模式和嚴格模式(譯注:一般稱為標準模式:Standards Mode,下文中的嚴格模式都可以理解為標準模式)是瀏覽器解析CSS時的兩種‘模式’。這篇文章將簡單闡述這兩種模式之間的差異穆刻。該標簽可聲明三種 DTD 類型,分別表示嚴格版本派敷、過渡版本以及基于框架的 HTML 文檔蛹批。
2、HTML5 為什么只需要寫 <!DOCTYPE HTML>篮愉?
答:html5 不基于SGML腐芍,因此不需要對它DTD進行引用,但是需要doctype來規(guī)范瀏覽器的行為试躏。而Html4基于SGML猪勇,所以需要對DTD進行引用,才能告知瀏覽器文檔所使用的文檔類型颠蕴。
3泣刹、行內(nèi)元素有哪些?塊級元素有哪些犀被? 空(void)元素有那些椅您?
CSS規(guī)范規(guī)定,每個元素都有display屬性寡键,確定該元素的類型掀泳,每個元素都有默認的display值, 比如div默認display屬性值為“block”西轩,成為“塊級”元素员舵;span默認display屬性值為“inline”,是“行內(nèi)”元素藕畔。 行內(nèi)元素有:a b span img input select strong(強調(diào)的語氣) 塊級元素有:div ul ol li dl dt dd h1 h2 h3 h4…p 知名的空元素:<img> <input> <link> <meta> 鮮為人知的是: <area> <base> <col> <command> <embed> <keygen> <param> <source> <track> <wbr>
4马僻、頁面導入樣式時,使用link和@import有什么區(qū)別注服?
差別1:老祖宗的差別韭邓。link屬于XHTML標簽措近,而@import完全是CSS提供的一種方式。link標簽除了可以加載CSS外仍秤,還可以做很多其它的事情熄诡,比如定義RSS,定義rel連接屬性等诗力,@import就只能加載CSS了凰浮。
差別2:加載順序的差別。當一個頁面被加載的時候(就是被瀏覽者瀏覽的時候)苇本,link引用的CSS會同時被加載袜茧,而@import引用的CSS會等到頁面全部被下載完再被加載。所以有時候瀏覽@import加載CSS的頁面時開始會沒有樣式(就是閃爍)瓣窄,網(wǎng)速慢的時候還挺明顯(夢之都加載CSS的方式就是使用@import笛厦,我一邊下載一邊瀏覽夢之都網(wǎng)頁時,就會出現(xiàn)上述問題)俺夕。
差別3:兼容性的差別裳凸。由于@import是CSS2.1提出的所以老的瀏覽器不支持,@import只有在IE5以上的才能識別劝贸,而link標簽無此問題姨谷。
差別4:使用dom控制樣式時的差別。當使用javascript控制dom去改變樣式的時候映九,只能使用link標簽梦湘,因為@import不是dom可以控制的。
差別5:@import可以在css中再次引入其他樣式表件甥,比如可以創(chuàng)建一個主樣式表捌议,在主樣式表中再引入其他的樣式表。
5引有、介紹一下你對瀏覽器內(nèi)核的理解瓣颅?
那內(nèi)核是什么呢?內(nèi)核只是一個通俗的說法譬正,其英文名稱為“Layout engine”弄捕,翻譯過來就是“排版引擎”,也被稱為“頁面渲染引擎”(下文中各種說法通用)导帝。它負責取得網(wǎng)頁的內(nèi)容(HTML、XML穿铆、圖像等等)您单、整理信息(例如加入CSS等),以及計算網(wǎng)頁的顯示方式荞雏,然后會輸出至顯示器或打印機虐秦。所有網(wǎng)頁瀏覽器平酿、電子郵件客戶端以及其它需要編輯、顯示網(wǎng)絡內(nèi)容的應用程序都需要排版引擎悦陋。不同的瀏覽器內(nèi)核對網(wǎng)頁編寫語法的解釋也有不同蜈彼,因此同一網(wǎng)頁在不同的內(nèi)核的瀏覽器里的渲染(顯示)效果也可能不同,這也是網(wǎng)頁編寫者需要在不同內(nèi)核的瀏覽器中測試網(wǎng)頁顯示效果的原因俺驶。這就是編寫網(wǎng)頁的麻煩所在啊幸逆。。暮现。要讓所有瀏覽器顯示大概一致还绘,有時候很麻煩。
現(xiàn)在市面上常見的 內(nèi)核基本是一下4種:
Trident

這是微軟開發(fā)的一種排版引擎栖袋。該內(nèi)核程序在1997年的IE4中首次被采用拍顷,是微軟在Mosaic代碼的基礎之上修改而來的,并沿用到目前的 IE7塘幅。Trident實際上是一款開放的內(nèi)核昔案,其接口內(nèi)核設計的相當成熟,因此才有許多采用IE內(nèi)核而非IE的瀏覽器涌現(xiàn)(如 Maxthon电媳、The World 踏揣、TT、GreenBrowser匆背、AvantBrowser等)呼伸。此外,為了方便也有很多人直接簡稱其為IE內(nèi)核(當然也不排除有部分人是因為不知道內(nèi) 核名稱而只好如此說钝尸,至少老N就是如此括享。。珍促。)铃辖。自從發(fā)布后,Trident不斷地被更新和完善:
Trident II(IE5)——增進對CSS1.0的支持及對CSS2重大的變更猪叙;
Trident III(IE5.5)——修正部分CSS的排版控制娇斩;
Trident IV(IE6)——修正了一部分box-model的錯誤以及增加了“兼容模式(Quirks Mode)”切換功能,以增加對文件類型描述(Document Type Definition穴翩,DTD)的支持犬第;
Trident V(IE7)——修正許多CSS排版處理上的錯誤以及增加對PNG格式alpha通道(半透明)的支持。(這就是IE6經(jīng)常被詬病的對png圖片支持不良的之處C⑴痢)
Geckos
Gecko是套開放源代碼的歉嗓、以C++編寫的網(wǎng)頁排版引擎。這軟件原本是由網(wǎng)景通訊公司開發(fā)的背蟆,Netcape6開始采用該內(nèi)核鉴分。后來的 Mozilla FireFox也采用了該內(nèi)核哮幢,Geckos的特點是代碼完全公開,因此志珍,其可開發(fā)程度很高橙垢,全世界的程序員都可以為其編寫代碼,增加功能伦糯。Geckos 現(xiàn)在由Mozilla基金會維護柜某。
Presto
Presto是一個由Opera Software開發(fā)的瀏覽器排版引擎,該內(nèi)核在2003年的Opera7中首次被使用舔株,該款引擎的特點就是渲染速度的優(yōu)化達到了極致莺琳,也是目前公認網(wǎng)頁瀏覽速度最快的瀏覽器內(nèi)核。
Webkit
蘋果公司自己的內(nèi)核载慈,也是蘋果的Safari瀏覽器使用的內(nèi)核惭等。 Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是從KDE的KHTML及KJS引擎衍生而來办铡,它們都是自由軟 件辞做,在GPL條約下授權,同時支持BSD系統(tǒng)的開發(fā)寡具。所以Webkit也是自由軟件秤茅,同時開發(fā)源代碼。在安全方面不受IE童叠、Firefox的制約框喳,所以 Safari瀏覽器在國內(nèi)還是很安全的。
簡單的總結一下:
使用Trident內(nèi)核的瀏覽器:IE厦坛、Maxthon五垮、TT、The World等杜秸;
使用Gecko內(nèi)核的瀏覽器:Netcape6及以上版本放仗、FireFox、MozillaSuite/SeaMonkey撬碟;
使用Presto內(nèi)核的瀏覽器:Opera7及以上版本诞挨;
使用Webkit內(nèi)核的瀏覽器:Safari、Chrome呢蛤。
6惶傻、常見的瀏覽器內(nèi)核有哪些?
(Q1)
瀏覽器** :IE其障,Chrome达罗,F(xiàn)ireFox,Safari,Opera
(Q2)** 內(nèi)核** :Trident粮揉,Gecko,Presto抚笔,Webkit
7扶认、html5有哪些新特性、移除了那些元素殊橙?如何處理HTML5新標簽的瀏覽器兼容問題辐宾?如何區(qū)分 HTML 和 HTML5?

  • HTML5 現(xiàn)在已經(jīng)不是 SGML 的子集膨蛮,主要是關于圖像叠纹,位置,存儲敞葛,多任務等功能的增加誉察。*
    拖拽釋放(Drag and drop) API 語義化更好的內(nèi)容標簽(header,nav,footer,aside,article,section) 音頻、視頻API(audio,video) 畫布(Canvas) API 地理(Geolocation) API 本地離線存儲 localStorage 長期存儲數(shù)據(jù)惹谐,瀏覽器關閉后數(shù)據(jù)不丟失持偏; sessionStorage 的數(shù)據(jù)在瀏覽器關閉后自動刪除 表單控件,calendar氨肌、date鸿秆、time、email怎囚、url卿叽、search 新的技術webworker, websocket, Geolocation
  • 移除的元素純表現(xiàn)的元素:basefont,big恳守,center考婴,font, s,strike井誉,tt蕉扮,u;對可用性產(chǎn)生負面影響的元素:frame颗圣,frameset喳钟,noframes;支持HTML5新標簽:
  • IE8/IE7/IE6支持通過document.createElement方法產(chǎn)生的標簽在岂, 可以利用這一特性讓這些瀏覽器支持HTML5新標簽奔则, 瀏覽器支持新標簽后,還需要添加標簽默認的樣式:
  • 當然最好的方式是直接使用成熟的框架蔽午、使用最多的是html5shim框架 如何區(qū)分: DOCTYPE聲明\新增的結構元素\功能元素
    8易茬、簡述一下你對HTML語義化的理解?
    1、什么是HTML語義化抽莱?
    <基本上都是圍繞著幾個主要的標簽范抓,像標題(H1~H6)、列表(li)食铐、強調(diào)(strong em)等等>
      根據(jù)內(nèi)容的結構化(內(nèi)容語義化)匕垫,選擇合適的標簽(代碼語義化)便于開發(fā)者閱讀和寫出更優(yōu)雅的代碼的同時讓瀏覽器的爬蟲和機器很好地解析。
    2虐呻、為什么要語義化象泵?
    為了在沒有CSS的情況下,頁面也能呈現(xiàn)出很好地內(nèi)容結構斟叼、代碼結構:為了裸奔時好看偶惠;
    用戶體驗:例如title、alt用于解釋名詞或解釋圖片信息朗涩、label標簽的活用忽孽;
    有利于SEO:和搜索引擎建立良好溝通,有助于爬蟲抓取更多的有效信息:爬蟲依賴于標簽來確定上下文和各個關鍵字的權重馋缅;
    方便其他設備解析(如屏幕閱讀器扒腕、盲人閱讀器、移動設備)以意義的方式來渲染網(wǎng)頁萤悴;
    便于團隊開發(fā)和維護瘾腰,語義化更具可讀性,是下一步吧網(wǎng)頁的重要動向覆履,遵循W3C標準的團隊都遵循這個標準蹋盆,可以減少差異化。

3硝全、寫HTML代碼時應注意什么栖雾?
盡可能少的使用無語義的標簽div和span;
在語義不明顯時伟众,既可以使用div或者p時析藕,盡量用p, 因為p在默認情況下有上下間距,對兼容特殊終端有利凳厢;
不要使用純樣式標簽账胧,如:b、font先紫、u等治泥,改用css設置。
需要強調(diào)的文本遮精,可以包含在strong或者em標簽中(瀏覽器預設樣式居夹,能用CSS指定就不用他們),strong默認樣式是加粗(不要用b),em是斜體(不用i)准脂;
使用表格時劫扒,標題要用caption,表頭用thead意狠,主體部分用tbody包圍粟关,尾部用tfoot包圍。表頭和一般單元格要區(qū)分開环戈,表頭用th,單元格用td澎灸;
表單域要用fieldset標簽包起來院塞,并用legend標簽說明表單的用途;
每個input標簽對應的說明文本都需要使用label標簽性昭,并且通過為input設置id屬性拦止,在lable標簽中設置for=someld來讓說明文本和相對應的input關聯(lián)起來。

** 4糜颠、HTML5新增了哪些語義標簽汹族,詳述之。**
  見這位前端大拿的blog其兴。
9顶瞒、HTML5的離線儲存怎么使用,工作原理能不能解釋一下元旬?
http://www.ibm.com/developerworks/cn/web/wa-offlinehtml/
10榴徐、瀏覽器是怎么對HTML5的離線儲存資源進行管理和加載的呢?
http://www.codeceo.com/article/html5-cache.html
11匀归、請描述一下 cookies坑资,sessionStorage 和 localStorage 的區(qū)別?
共同點:都是保存在瀏覽器端穆端,且同源的袱贮。區(qū)別:cookie數(shù)據(jù)始終在同源的中攜帶(即使不需要),即cookie在瀏覽器和服務器間來回傳遞体啰。而sessionStorage和localStorage不會自動把數(shù)據(jù)發(fā)給服務器攒巍,僅在本地保存。cookie數(shù)據(jù)還有路徑(path)的概念狡赐,可以限制cookie只屬于某個路徑下窑业。存儲大小限制也不同,cookie數(shù)據(jù)不能超過4k枕屉,同時因為每次都會攜帶cookie常柄,所以cookie只適合保存很小的數(shù)據(jù),如會話標識。sessionStorage和localStorage 雖然也有存儲大小的限制西潘,但比cookie大得多卷玉,可以達到5M或更大。數(shù)據(jù)有效期不同喷市,sessionStorage:僅在當前瀏覽器窗口關閉前有效相种,自然也就不可能持久保持;localStorage:始終有效品姓,窗口或瀏覽器關閉也一直保存寝并,因此用作持久數(shù)據(jù);cookie只在設置的cookie過期時間之前一直有效腹备,即使窗口或瀏覽器關閉衬潦。作用域不同,sessionStorage不在不同的瀏覽器窗口中共享植酥,即使是同一個頁面镀岛;localStorage 在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的友驮。Web Storage 支持事件通知機制漂羊,可以將數(shù)據(jù)更新的通知發(fā)送給監(jiān)聽者。Web Storage 的 api 接口使用更方便卸留。
12走越、iframe有那些缺點?
框架的優(yōu)點
重載頁面時不需要重載整個頁面艾猜,只需要重載頁面中的一個框架頁(減少了數(shù)據(jù)的傳輸买喧,增加了網(wǎng)頁下載速度)
方便制作導航欄
框架的缺點
會產(chǎn)生很多頁面,不容易管理
不容易打印
瀏覽器的后退按鈕無效
代碼復雜,無法被一些搜索引擎索引到
多數(shù)小型的移動設備(PDA 手機)無法完全顯示框架
多框架的頁面會增加服務器的http請求
由于上面諸多缺點匆赃,因此不符合標準網(wǎng)頁設計的理念,已經(jīng)被標準網(wǎng)頁設計拋棄
提示: 目前框架的所有優(yōu)點完全可以使用Ajax實現(xiàn)淤毛,因此已經(jīng)沒有必要使用框架了。
1.<span class="hljs-tag"><<span class="hljs-title">iframe</span>></span>優(yōu)點:
解決加載緩慢的第三方內(nèi)容如圖標和廣告等的加載問題
Security sandbox
并行加載腳本
2.<span class="hljs-tag"><<span class="hljs-title">iframe</span>></span>的缺點:
*iframe會阻塞主頁面的Onload事件
*即時內(nèi)容為空算柳,加載也需要時間
*沒有語意
13低淡、Label的作用是什么?是怎么用的瞬项?(加 for 或 包裹)
Label 中有兩個屬性是非常有用的,一個是FOR蔗蹋、另外一個就是ACCESSKEY了。 FOR屬性 功能:表示Label標簽要綁定的HTML元素囱淋,你點擊這個標簽的時候猪杭,所綁定的元素將獲取焦點。 用法:<Label FOR="InputBox">姓名</Label><input ID="InputBox" type="text"> ACCESSKEY屬性: 功能:表示訪問Label標簽所綁定的元素的熱鍵妥衣,當您按下熱鍵皂吮,所綁定的元素將獲取焦點戒傻。 用法:<Label FOR="InputBox" ACCESSKEY="N">姓名</Label><input ID="InputBox" type="text">局限性:accessKey屬性所設置的快捷鍵不能與瀏覽器的快捷鍵沖突,否則將優(yōu)先激活瀏覽器的快捷鍵蜂筹。 注釋 要將 LABEL 綁定到其它的控件需纳,請將 LABEL 元素的 FOR 屬性設置為與該控件的 ID 相同。將 LABEL 綁定到控件的 NAME 屬性毫無用處艺挪。但是不翩,要提交表單,你必須為 LABEL 元素所綁定到的控件指定 NAME麻裳。 有兩種方法給所指定的快捷鍵添加下劃線口蝠。LABEL 元素的 rich text 支持可以在 ACCESSKEY 屬性所指定的快捷鍵字符兩側加上 U 元素。如果你更愿意使用樣式表(CSS)來應用樣式津坑,可以將該字符包含在 SPAN 中亚皂,并設置樣式為“text-decoration: underline”。 如果用戶單擊 LABEL国瓮,則會先觸發(fā) LABEL 上的 onclick 事件,然后觸發(fā)由 htmlFor 屬性所指定的控件上的 onclick 事件狞谱。按下 LABEL 設定的快捷鍵將設置焦點但并不觸發(fā) onclick 事件乃摹。 標簽不允許嵌套。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末跟衅,一起剝皮案震驚了整個濱河市孵睬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌伶跷,老刑警劉巖掰读,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異叭莫,居然都是意外死亡蹈集,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門雇初,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拢肆,“玉大人,你說我怎么就攤上這事靖诗」郑” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵刊橘,是天一觀的道長鄙才。 經(jīng)常有香客問我,道長促绵,這世上最難降的妖魔是什么攒庵? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任嘴纺,我火速辦了婚禮,結果婚禮上叙甸,老公的妹妹穿的比我還像新娘颖医。我一直安慰自己,他們只是感情好裆蒸,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布熔萧。 她就那樣靜靜地躺著,像睡著了一般僚祷。 火紅的嫁衣襯著肌膚如雪佛致。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天辙谜,我揣著相機與錄音俺榆,去河邊找鬼。 笑死装哆,一個胖子當著我的面吹牛罐脊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蜕琴,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼萍桌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了凌简?” 一聲冷哼從身側響起上炎,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎雏搂,沒想到半個月后藕施,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡凸郑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年裳食,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片线椰。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡胞谈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出憨愉,到底是詐尸還是另有隱情烦绳,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布配紫,位于F島的核電站径密,受9級特大地震影響,放射性物質發(fā)生泄漏躺孝。R本人自食惡果不足惜享扔,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一底桂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧惧眠,春花似錦籽懦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至秀存,卻和暖如春捶码,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背或链。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工惫恼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人澳盐。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓祈纯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親叼耙。 傳聞我的和親對象是個殘疾皇子盆繁,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容