web前端面試題總結(jié)(2)

引用地址

HTML&CSS

1.請描述一下 cookies桐智,sessionStorage 和 localStorage 的區(qū)別末早?

cookie是網(wǎng)站為了標(biāo)示用戶身份而儲存在用戶本地終端(Client Side)上的數(shù)據(jù)(通常經(jīng)過加密)。

cookie數(shù)據(jù)始終在同源的http請求中攜帶(即使不需要)说庭,記會在瀏覽器和服務(wù)器間來回傳遞然磷。

sessionStorage和localStorage不會自動把數(shù)據(jù)發(fā)給服務(wù)器,僅在本地保存刊驴。

存儲大凶怂选:

cookie數(shù)據(jù)大小不能超過4k寡润。

sessionStorage和localStorage 雖然也有存儲大小的限制,但比cookie大得多舅柜,可以達(dá)到5M或更大梭纹。

有期時間:

localStorage? ? 存儲持久數(shù)據(jù),瀏覽器關(guān)閉后數(shù)據(jù)不丟失除非主動刪除數(shù)據(jù)业踢;

sessionStorage??數(shù)據(jù)在當(dāng)前瀏覽器窗口關(guān)閉后自動刪除栗柒。

cookie? ?? ?? ? 設(shè)置的cookie過期時間之前一直有效,即使窗口或瀏覽器關(guān)閉

2.iframe有那些缺點知举?

iframe會阻塞主頁面的Onload事件瞬沦;

搜索引擎的檢索程序無法解讀這種頁面,不利于SEO;

iframe和主頁面共享連接池雇锡,而瀏覽器對相同域的連接有限制逛钻,所以會影響頁面的并行加載。

使用iframe之前需要考慮這兩個缺點锰提。如果需要使用iframe曙痘,最好是通過javascript動態(tài)給iframe添加src屬性值,這樣可以繞開以上兩個問題立肘。

3.如何實現(xiàn)瀏覽器內(nèi)多個標(biāo)簽頁之間的通信?

WebSocket边坤、SharedWorker

也可以調(diào)用localstorge、cookies等本地存儲方式谅年。

localstorge另一個瀏覽上下文里被添加茧痒、修改或刪除時,它都會觸發(fā)一個事件融蹂,我們通過監(jiān)聽事件旺订,控制它的值來進(jìn)行頁面信息通信。

注意quirks:Safari 在無痕模式下設(shè)置localstorge值時會拋出 QuotaExceededError 的異常超燃。

4.如何在頁面上實現(xiàn)一個圓形的可點擊區(qū)域区拳?

(1)map+area或者svg

(2)border-radius

(3)純js實現(xiàn) 需要求一個點在不在圓上簡單算法、獲取鼠標(biāo)坐標(biāo)等等

5.介紹一下標(biāo)準(zhǔn)的CSS的盒子模型意乓?低版本IE的盒子模型有什么不同的樱调?

(1)有兩種, IE 盒子模型届良、W3C 盒子模型笆凌。

(2)盒模型: 內(nèi)容(content)、填充(padding)伙窃、邊界(margin)菩颖、 邊框(border)。

(3)區(qū)??別: IE的content部分把 border 和 padding計算了進(jìn)去为障。

6.CSS優(yōu)先級算法如何計算晦闰?

優(yōu)先級就近原則放祟,同權(quán)重情況下樣式定義最近者為準(zhǔn);

載入樣式以最后載入的定位為準(zhǔn);

優(yōu)先級為:

!important >??id > class > tag

important比內(nèi)聯(lián)優(yōu)先級高(style)

7.為什么要使用CSS sprites

CSS Sprites其實就是把網(wǎng)頁中一些背景圖片整合到一張圖片文件中,再利用CSS的“background-image”呻右,“background-position”的組合進(jìn)行背景定位跪妥,這樣可以減少很多圖片請求的開銷,因為請求耗時比較長声滥;請求雖然可以并發(fā)眉撵,但是如果請求太多會給服務(wù)器增加很大的壓力。

8.display:none和visibility:hidden的區(qū)別落塑?

display:none??隱藏對應(yīng)的元素纽疟,在文檔布局中不再給它分配空間,它各邊的元素會合攏憾赁,就當(dāng)他從來不存在污朽。

visibility:hidden??隱藏對應(yīng)的元素,但是在文檔布局中仍保留原來的空間龙考。

9.position的absolute與fixed區(qū)別

absolute浮動定位是相對于父級中設(shè)置position為relative或者absolute最近的父級元素

fixed浮動定位是相對于瀏覽器視窗的

10.IE 8以下版本的瀏覽器中的盒模型有什么不同蟆肆?

IE8以下瀏覽器的盒模型中定義的元素的寬高不包括內(nèi)邊距和邊框

JavaScript

1.JS數(shù)組去重

以下是展示三種方法:

javascript 代碼

Array.prototype.unique1=function(){

varn=[];//一個新的臨時數(shù)組

for(vari=0;i

{

//如果當(dāng)前數(shù)組的第i已經(jīng)保存進(jìn)了臨時數(shù)組,那么跳過晦款,

//否則把當(dāng)前項push到臨時數(shù)組里面

if(n.indexOf(this[i])==-1)n.push(this[i]);

}

returnn;

}

Array.prototype.unique2=function()

{

varn={},r=[];//n為hash表炎功,r為臨時數(shù)組

for(vari=0;i

{

if(!n[this[i]])//如果hash表中沒有當(dāng)前項

{

n[this[i]]=true;//存入hash表

r.push(this[i]);//把當(dāng)前數(shù)組的當(dāng)前項push到臨時數(shù)組里面

}

}

returnr;

}

Array.prototype.unique3=function()

{

varn=[this[0]];//結(jié)果數(shù)組

for(vari=1;i

{

//如果當(dāng)前數(shù)組的第i項在當(dāng)前數(shù)組中第一次出現(xiàn)的位置不是i,

//那么表示第i項是重復(fù)的缓溅,忽略掉蛇损。否則存入結(jié)果數(shù)組

if(this.indexOf(this[i])==i)n.push(this[i]);

2.js操作獲取和設(shè)置cookie


//創(chuàng)建cookie

functionsetCookie(name,value,expires,path,domain,secure){

varcookieText=encodeURIComponent(name)+'='+encodeURIComponent(value);

if(expiresinstanceofDate){

cookieText+=';?expires='+expires;

}

if(path){

cookieText+=';?expires='+expires;

}

if(domain){

cookieText+=';?domain='+domain;

}

if(secure){

cookieText+=';?secure';

}

document.cookie=cookieText;

}

//獲取cookie

functiongetCookie(name){

varcookieName=encodeURIComponent(name)+'=';

varcookieStart=document.cookie.indexOf(cookieName);

varcookieValue=null;

if(cookieStart>-1){

varcookieEnd=document.cookie.indexOf(';',cookieStart);

if(cookieEnd==-1){

cookieEnd=document.cookie.length;

}

cookieValue=decodeURIComponent(document.cookie.substring(cookieStart+cookieName.length,cookieEnd));

}

returncookieValue;

}

3.ajax 有那些優(yōu)缺點?如何解決跨域問題?

(Q1)

優(yōu)點:

(1)通過異步模式,提升了用戶體驗.

(2)優(yōu)化了瀏覽器和服務(wù)器之間的傳輸肛宋,減少不必要的數(shù)據(jù)往返州藕,減少了帶寬占用.

(3)Ajax在客戶端運行束世,承擔(dān)了一部分本來由服務(wù)器承擔(dān)的工作酝陈,減少了大用戶量下的服務(wù)器負(fù)載。

(4)Ajax可以實現(xiàn)動態(tài)不刷新(局部刷新)

缺點:

(1)安全問題 AJAX暴露了與服務(wù)器交互的細(xì)節(jié)毁涉。

(2)對搜索引擎的支持比較弱沉帮。

(3)不容易調(diào)試。

(Q2)jsonp贫堰、 iframe穆壕、window.name、window.postMessage其屏、服務(wù)器上設(shè)置代理頁面喇勋。

4.JavaScript原型,原型鏈 ? 有什么特點偎行?

(1)原型對象也是普通的對象川背,是對象一個自帶隱式的 __proto__ 屬性贰拿,原型也有可能有自己的原型,如果一個原型對象的原型不為null的話熄云,我們就稱之為原型鏈膨更。

(2)原型鏈?zhǔn)怯梢恍┯脕砝^承和共享屬性的對象組成的(有限的)對象鏈。

5.GET和POST的區(qū)別缴允,何時使用POST荚守?

GET:一般用于信息獲取,使用URL傳遞參數(shù)练般,對所發(fā)送信息的數(shù)量也有限制矗漾,一般在2000個字符

POST:一般用于修改服務(wù)器上的資源,對所發(fā)送的信息沒有限制薄料。

GET方式需要使用Request.QueryString來取得變量的值缩功,而POST方式通過Request.Form來獲取變量的值,

也就是說Get是通過地址欄來傳值都办,而Post是通過提交表單來傳值嫡锌。

然而,在以下情況中琳钉,請使用 POST 請求:

無法使用緩存文件(更新服務(wù)器上的文件或數(shù)據(jù)庫)

向服務(wù)器發(fā)送大量數(shù)據(jù)(POST 沒有數(shù)據(jù)量限制)

發(fā)送包含未知字符的用戶輸入時势木,POST 比 GET 更穩(wěn)定也更可靠

6.請解釋一下 JavaScript 的同源策略

概念:同源策略是客戶端腳本(尤其是Javascript)的重要的安全度量標(biāo)準(zhǔn)。它最早出自Netscape Navigator2.0歌懒,其目的是防止某個文檔或腳本從多個不同源裝載啦桌。

這里的同源策略指的是:協(xié)議,域名及皂,端口相同甫男,同源策略是一種安全協(xié)議。

指一段腳本只能讀取來自同一來源的窗口和文檔的屬性验烧。

為什么要有同源限制板驳?

我們舉例說明:比如一個黑客程序,他利用Iframe把真正的銀行登錄頁面嵌到他的頁面上碍拆,當(dāng)你使用真實的用戶名若治,密碼登錄時,他的頁面就可以通過Javascript讀取到你的表單中input中的內(nèi)容感混,這樣用戶名端幼,密碼就輕松到手了。

7.Flash弧满、Ajax各自的優(yōu)缺點婆跑,在使用中如何取舍?

Flash適合處理多媒體庭呜、矢量圖形滑进、訪問機(jī)器摹迷;對CSS、處理文本上不足郊供,不容易被搜索峡碉。

Ajax對CSS、文本支持很好驮审,支持搜索鲫寄;多媒體、矢量圖形疯淫、機(jī)器訪問不足地来。

共同點:與服務(wù)器的無刷新傳遞消息、用戶離線和在線狀態(tài)熙掺、操作DOM

8.什么是閉包未斑?

閉包,官方對閉包的解釋是:一個擁有許多變量和綁定了這些變量的環(huán)境的表達(dá)式(通常是一個函數(shù))币绩,因而這些變量也是該表達(dá)式的一部分蜡秽。閉包的特點:

(1)作為一個函數(shù)變量的一個引用,當(dāng)函數(shù)返回時缆镣,其處于激活狀態(tài)芽突。

(2) 一個閉包就是當(dāng)一個函數(shù)返回時,一個沒有釋放資源的棧區(qū)董瞻。

簡單的說寞蚌,Javascript允許使用內(nèi)部函數(shù)---即函數(shù)定義和函數(shù)表達(dá)式位于另一個函數(shù)的函數(shù)體內(nèi)。而且钠糊,這些內(nèi)部函數(shù)可以訪問它們所在的外部函數(shù)中聲明的所有局部變量挟秤、參數(shù)和聲明的其他內(nèi)部函數(shù)。當(dāng)其中一個這樣的內(nèi)部函數(shù)在包含它們的外部函數(shù)之外被調(diào)用時抄伍,就會形成閉包艘刚。

9.javascript里面的繼承怎么實現(xiàn),如何避免原型鏈上面的對象共享

用構(gòu)造函數(shù)和原型鏈的混合模式去實現(xiàn)繼承逝慧,避免對象共享可以參考經(jīng)典的extend()函數(shù)昔脯,很多前端框架都有封裝的啄糙,就是用一個空函數(shù)當(dāng)做中間變量

10.ajax過程

(1)創(chuàng)建XMLHttpRequest對象,也就是創(chuàng)建一個異步調(diào)用對象.

(2)創(chuàng)建一個新的HTTP請求,并指定該HTTP請求的方法笛臣、URL及驗證信息.

(3)設(shè)置響應(yīng)HTTP請求狀態(tài)變化的函數(shù).

(4)發(fā)送HTTP請求.

(5)獲取異步調(diào)用返回的數(shù)據(jù).

(6)使用JavaScript和DOM實現(xiàn)局部刷新.

其他

1.一個頁面從輸入 URL 到頁面加載顯示完成,這個過程中都發(fā)生了什么隧饼?

(1)查找瀏覽器緩存

(2)DNS解析沈堡、查找該域名對應(yīng)的IP地址、重定向(301)燕雁、發(fā)出第二個GET請求

(3)進(jìn)行HTTP協(xié)議會話

(4)客戶端發(fā)送報頭(請求報頭)

(5)服務(wù)器回饋報頭(響應(yīng)報頭)

(6)html文檔開始下載

(7)文檔樹建立诞丽,根據(jù)標(biāo)記請求所需指定MIME類型的文件

(8)文件顯示

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鲸拥,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子僧免,更是在濱河造成了極大的恐慌刑赶,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件懂衩,死亡現(xiàn)場離奇詭異撞叨,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)浊洞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進(jìn)店門牵敷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人法希,你說我怎么就攤上這事枷餐。” “怎么了苫亦?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵毛肋,是天一觀的道長。 經(jīng)常有香客問我屋剑,道長村生,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任饼丘,我火速辦了婚禮趁桃,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘肄鸽。我一直安慰自己卫病,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布典徘。 她就那樣靜靜地躺著蟀苛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪逮诲。 梳的紋絲不亂的頭發(fā)上帜平,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天,我揣著相機(jī)與錄音梅鹦,去河邊找鬼裆甩。 笑死,一個胖子當(dāng)著我的面吹牛齐唆,可吹牛的內(nèi)容都是我干的嗤栓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼茉帅!你這毒婦竟也來了叨叙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤堪澎,失蹤者是張志新(化名)和其女友劉穎擂错,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體樱蛤,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡马昙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了刹悴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片行楞。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖土匀,靈堂內(nèi)的尸體忽然破棺而出子房,到底是詐尸還是另有隱情,我是刑警寧澤就轧,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布证杭,位于F島的核電站,受9級特大地震影響妒御,放射性物質(zhì)發(fā)生泄漏解愤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一乎莉、第九天 我趴在偏房一處隱蔽的房頂上張望送讲。 院中可真熱鬧,春花似錦惋啃、人聲如沸哼鬓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽异希。三九已至,卻和暖如春绒瘦,著一層夾襖步出監(jiān)牢的瞬間称簿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人立帖。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像券册,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子垂涯,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,512評論 2 359

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