前端面試題集錦

1.說說你對(duì)語義化的理解啊犬?

  • 去掉或者丟失樣式的時(shí)候能夠讓頁面呈現(xiàn)出清晰的結(jié)構(gòu)
  • 有利于SEO
  • 方便其他設(shè)備解析
  • 便于團(tuán)隊(duì)開發(fā)和維護(hù),語義化使得網(wǎng)頁更具可讀性

2.談?wù)凜ookie的弊端壁查?

  • Cookie數(shù)量和長(zhǎng)度的限制觉至,20條,4KB
  • 安全性問題
  • 有些狀態(tài)不可能保存在客戶端

3.清除浮動(dòng)的技巧睡腿?

  • 空標(biāo)簽清除:clear:both
  • 給父元素添加overflow:auto
  • 使用after偽元素清除
  • 浮動(dòng)父元素

4.哪些操作會(huì)造成內(nèi)存泄漏语御?

  • setTimeout 的第一個(gè)參數(shù)使用字符串而非函數(shù)
  • 閉包
  • 控制臺(tái)日志
  • 循環(huán)(在兩個(gè)對(duì)象彼此引用且彼此保留時(shí),就會(huì)產(chǎn)生一個(gè)循環(huán))

5.性能優(yōu)化的方法席怪?

  • 減少http請(qǐng)求次數(shù):CSS Sprites, JS应闯、CSS 源碼壓縮,data 緩存
  • 減少 DOM 操作次數(shù)挂捻,優(yōu)化 javascript 性能碉纺,延遲,異步加載腳本
  • 減少 IO 讀取操作
  • 圖片預(yù)加載刻撒,將樣式表放在頂部骨田,將腳本放在底部

6.http狀態(tài)碼有那些?

  • 100 Continue 繼續(xù)疫赎,一般在發(fā)送post請(qǐng)求時(shí)盛撑,已發(fā)送了http header之后服務(wù)端將返回此信息,表示確認(rèn)捧搞,之后發(fā)送具體參數(shù)信息
  • 200 OK 正常返回信息
  • 201 Created 請(qǐng)求成功并且服務(wù)器創(chuàng)建了新的資源
  • 202 Accepted 服務(wù)器已接受請(qǐng)求抵卫,但尚未處理
  • 301 Moved Permanently 請(qǐng)求的網(wǎng)頁已永久移動(dòng)到新位置
  • 302 Found 臨時(shí)性重定向
  • 303 See Other 臨時(shí)性重定向狮荔,且總是使用 GET 請(qǐng)求新的 URI
  • 304 Not Modified 自從上次請(qǐng)求后,請(qǐng)求的網(wǎng)頁未修改過
  • 400 Bad Request 服務(wù)器無法理解請(qǐng)求的格式介粘,客戶端不應(yīng)當(dāng)嘗試再次使用相同的內(nèi)容發(fā)起請(qǐng)求
  • 401 Unauthorized 請(qǐng)求未授權(quán)
  • 403 Forbidden 禁止訪問
  • 404 Not Found 找不到如何與 URI 相匹配的資源
  • 500 Internal Server Error 最常見的服務(wù)器端錯(cuò)誤
  • 503 Service Unavailable 服務(wù)器端暫時(shí)無法處理請(qǐng)求(可能是過載或維護(hù))

7.頁面加載顯示過程殖氏?

  1. 當(dāng)發(fā)送一個(gè) URL 請(qǐng)求時(shí),不管這個(gè)URL是Web頁面的URL還是Web頁面上每個(gè)資源的 URL姻采,瀏覽器都會(huì)開啟一個(gè)線程來處理這個(gè)請(qǐng)求雅采,同時(shí)在遠(yuǎn)程DNS服務(wù)器上啟動(dòng)一個(gè) DNS查詢。這能使瀏覽器獲得請(qǐng)求對(duì)應(yīng)的IP地址慨亲。
  2. 瀏覽器與遠(yuǎn)程Web服務(wù)器通過TCP三次握手協(xié)商來建立一個(gè)TCP/IP連接婚瓜。該握手包括一個(gè)同步報(bào)文,一個(gè)同步-應(yīng)答報(bào)文和一個(gè)應(yīng)答報(bào)文刑棵,這三個(gè)報(bào)文在 瀏覽器和服務(wù)器之間傳遞巴刻。該握手首先由客戶端嘗試建立起通信,而后服務(wù)器應(yīng)答并接受客戶端的請(qǐng)求蛉签,最后由客戶端發(fā)出該請(qǐng)求已經(jīng)被接受的報(bào)文胡陪。
  3. 一旦TCP/IP連接建立,瀏覽器會(huì)通過該連接向遠(yuǎn)程服務(wù)器發(fā)送HTTP的GET請(qǐng)求碍舍,遠(yuǎn)程服務(wù)器找到資源并使用HTTP響應(yīng)返回該資源柠座,值為200的HTTP響應(yīng)狀態(tài)表示一個(gè)正確的響應(yīng)。
  4. 此時(shí)片橡,Web服務(wù)器提供資源服務(wù)妈经,客戶端開始下載資源。

8.ajax 的過程是怎樣的锻全?

  1. 創(chuàng)建XMLHttpRequest對(duì)象,也就是創(chuàng)建一個(gè)異步調(diào)用對(duì)象
  2. 創(chuàng)建一個(gè)新的HTTP請(qǐng)求,并指定該HTTP請(qǐng)求的方法狂塘、URL及驗(yàn)證信息
  3. 設(shè)置響應(yīng)HTTP請(qǐng)求狀態(tài)變化的函數(shù)
  4. 發(fā)送HTTP請(qǐng)求
  5. 獲取異步調(diào)用返回的數(shù)據(jù)
  6. 使用JavaScript和DOM實(shí)現(xiàn)局部刷新

9.GET和POST的區(qū)別?

GET:一般用于信息獲取鳄厌,使用URL傳遞參數(shù)荞胡,對(duì)所發(fā)送信息的數(shù)量也有限制,一般在2000個(gè)字符
POST:一般用于修改服務(wù)器上的資源了嚎,對(duì)所發(fā)送的信息沒有限制
GET方式需要使用 Request.QueryString 來取得變量的值
POST方式通過 Request.Form 來獲取變量的值
也就是說 Get 是通過地址欄來傳值泪漂,而 Post 是通過提交表單來傳值。
在以下情況中歪泳,請(qǐng)使用 POST 請(qǐng)求:

  1. 無法使用緩存文件(更新服務(wù)器上的文件或數(shù)據(jù)庫)
  2. 向服務(wù)器發(fā)送大量數(shù)據(jù)(POST 沒有數(shù)據(jù)量限制)
  3. 發(fā)送包含未知字符的用戶輸入時(shí)萝勤,POST 比 GET 更穩(wěn)定也更可靠

10.引用類型和基本類型的區(qū)別?

基本數(shù)據(jù)類型:Number呐伞,String敌卓,Boolean,Null伶氢,Undefined趟径,Symbol
引用類型:Object瘪吏,Array,function蜗巧,Date掌眠,RexExp等
區(qū)別:

  1. 基本類型的值不可變,引用類型的值可變
  2. 基本類型的比較是值的比較幕屹,引用類型的比較是引用的比較
  3. 基本類型的變量存放在棧區(qū)蓝丙,引用類型的值同時(shí)保存在棧內(nèi)存和堆內(nèi)存中
    引用類型的賦值是對(duì)象保存在棧區(qū)地址指針的賦值,兩個(gè)變量指向同一個(gè)對(duì)象望拖,任何的操作都會(huì)相互影響

11.深拷貝和淺拷貝的區(qū)別?

  • 深拷貝:兩數(shù)組指針指向不同的地址渺尘,數(shù)組元素發(fā)生改變時(shí)不會(huì)相互影響
  • 淺拷貝:相當(dāng)于使兩個(gè)數(shù)組指針指向相同的地址,任一個(gè)數(shù)組元素發(fā)生改變靠娱,會(huì)影響另一個(gè)

12.js繼承的方式和特點(diǎn)沧烈?

  • 原型鏈繼承:利用原型讓一個(gè)引用類型繼承另一個(gè)引用類型的屬性和方法
  • 借用構(gòu)造函數(shù)繼承:在子類型構(gòu)造函數(shù)的內(nèi)部調(diào)用超類型構(gòu)造函數(shù)
  • 組合繼承:集二者之長(zhǎng)
  • 原型式繼承:借助原型并基于已有的對(duì)象創(chuàng)建新對(duì)象掠兄,不用創(chuàng)建自定義類型
  • 寄生式繼承:創(chuàng)建一個(gè)僅用于封裝繼承過程的函數(shù)
  • 寄生組合式繼承:解決兩次調(diào)用的問題
  • 類繼承:通過extends關(guān)鍵字實(shí)現(xiàn)繼承

13.defer和async屬性的區(qū)別像云?

  • defer:與文檔元素同步加載,腳本在文檔解析后執(zhí)行
  • async:加載和渲染文檔元素的過程和腳本的加載與執(zhí)行并行進(jìn)行

14.前端的安全問題蚂夕?

  1. sql注入:通過把SQL命令插入到Web表單遞交或輸入域名或頁面請(qǐng)求的查詢字符串迅诬,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令。
  2. XSS攻擊:指的是攻擊者往Web頁面里插入惡意html標(biāo)簽或者javascript代碼婿牍。
  3. CSRF:跨站請(qǐng)求偽造

15.瀏覽器如何渲染網(wǎng)頁侈贷?

  1. 使用HTML創(chuàng)建文檔對(duì)象模型(DOM)
  2. 使用CSS創(chuàng)建CSS對(duì)象模型(CSSOM)
  3. 基于DOM和CSSOM執(zhí)行腳本(Scripts)
  4. 合并DOM和CSSOM形成渲染樹(Render Tree)
  5. 使用渲染樹布局(Layout)所有元素
  6. 渲染(Paint)所有元素

16.如何解決跨域問題?

  1. jsonp(動(dòng)態(tài)插入 script 標(biāo)簽)
  2. document.domain + iframe
  3. window.name等脂、window.postMessage
  4. 服務(wù)器上設(shè)置代理頁面

17.TCP傳輸?shù)娜挝帐植呗?/h1>
  1. 發(fā)送端首先發(fā)送一個(gè)帶SYN標(biāo)志的數(shù)據(jù)包給對(duì)方俏蛮。
  2. 接收端收到后,回傳一個(gè)帶有SYN/ACK標(biāo)志的數(shù)據(jù)包以示傳達(dá)確認(rèn)信息上遥。
  3. 發(fā)送端再回傳一個(gè)帶ACK標(biāo)志的數(shù)據(jù)包搏屑,代表“握手”結(jié)束。

18.CSS和JavaScript的阻塞問題

  • css阻塞:當(dāng)CSS后面跟著嵌入的JS的時(shí)候粉楚,會(huì)出現(xiàn)阻塞后面資源下載的情況
  • js阻塞:下載JS的時(shí)候辣恋,會(huì)阻止一切其他活動(dòng)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市模软,隨后出現(xiàn)的幾起案子伟骨,更是在濱河造成了極大的恐慌,老刑警劉巖燃异,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件携狭,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡回俐,警方通過查閱死者的電腦和手機(jī)逛腿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門壹瘟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鳄逾,你說我怎么就攤上這事稻轨。” “怎么了雕凹?”我有些...
    開封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵殴俱,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我枚抵,道長(zhǎng)线欲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任汽摹,我火速辦了婚禮李丰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘逼泣。我一直安慰自己趴泌,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開白布拉庶。 她就那樣靜靜地躺著嗜憔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪氏仗。 梳的紋絲不亂的頭發(fā)上吉捶,一...
    開封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音皆尔,去河邊找鬼呐舔。 笑死,一個(gè)胖子當(dāng)著我的面吹牛慷蠕,可吹牛的內(nèi)容都是我干的珊拼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼砌们,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼杆麸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起浪感,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤昔头,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后影兽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體揭斧,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了讹开。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盅视。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖旦万,靈堂內(nèi)的尸體忽然破棺而出闹击,到底是詐尸還是另有隱情,我是刑警寧澤成艘,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布赏半,位于F島的核電站,受9級(jí)特大地震影響淆两,放射性物質(zhì)發(fā)生泄漏断箫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧祷舀,春花似錦、人聲如沸捏卓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至盯另,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間洲赵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來泰國打工商蕴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留叠萍,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓绪商,卻偏偏與公主長(zhǎng)得像苛谷,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子格郁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理腹殿,服務(wù)發(fā)現(xiàn),斷路器例书,智...
    卡卡羅2017閱讀 134,672評(píng)論 18 139
  • 常見的瀏覽器內(nèi)核有哪些锣尉?介紹一下你對(duì)瀏覽器內(nèi)核的理解? Trident內(nèi)核:IE,MaxThon,TT,The W...
    我是白夜閱讀 1,646評(píng)論 0 50
  • 請(qǐng)描述一下 JavaScript 事件冒泡機(jī)制决采? 當(dāng)頁面中某個(gè)元素的事件被觸發(fā)以后自沧,比如點(diǎn)擊了頁面中的某個(gè)按鈕,就...
    我是白夜閱讀 1,200評(píng)論 0 49
  • 一树瞭、概念(載錄于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434閱讀 8,359評(píng)論 6 152
  • 我記得有人說過拇厢,時(shí)間可以治愈一切爱谁,我信以為真。 一個(gè)人承載太多的故事 總會(huì)太累孝偎,我只是不想太累访敌,便想寫寫出來吧~~...
    痞子閱讀 264評(píng)論 0 2