Web前端面試題目及答案匯總

2021-02-15 千鋒教育


  以下是收集一些面試中經常會遇到的經典面試題以及自己面試過程中無法解決的問題,通過對知識的整理以及經驗的總結,重新鞏固自身的前端基礎知識,如有錯誤或更好的答案,歡迎泥萌在下方評論

 閱讀目錄 HTML/CSS部分 

JavaScript部分

 其他

 HTML/CSS部分 


什麼是盒子模型? 

在網頁中,一個元素佔有空間的大小由幾個部分構成,其中包括元素的內容(content),元素的內邊距(padding),元素的邊框(border),元素的外邊距(margin)四個部分。這四個部分佔有的空間中,有的部分可以顯示相應的內容,而有的部分只用來分隔相鄰的區域或區域。4個部分一起構成了css中元素的盒模型。

行內元素有哪些?

塊級元素有哪些? 空(void)元素有那些? 行內元素:a、b、span、img、input、strong、select、label、em、button、textarea 塊級元素:div、ul、li、dl、dt、dd、p、h1-h6、blockquote 空元素:即系沒有內容的HTML元素,例如:br、meta、hr、link、input、img 

CSS實現垂直水平居中 一道經典的問題

實現方法有很多種,以下是其中一種實現: 

HTML結構:

CSS: .wrapper{position:relative;} .content{ background-color:#6699FF; width:200px; height:200px; position: absolute; //父元素需要相對定位 top: 50%; left: 50%; margin-top:-100px ; //二分之一的height,width margin-left: -100px; } 

簡述一下src與href的區別 

href 是指向網絡資源所在位置,建立和當前元素(錨點)或當前文檔(連結)之間的連結,用於超連結。 src是指向外部資源的位置,指向的內容將會嵌入到文檔中當前標籤所在位置;在請求src資源時會將其指向的資源下載並應用到文檔內,例如js腳本,img圖片和frame等元素。當瀏覽器解析到該元素時,會暫停其他資源的下載和處理,直到將該資源加載、編譯、執行完畢,圖片和框架等元素也如此,類似於將所指向資源嵌入當前標籤內。這也是為什麼將js腳本放在底部而不是頭部。

 什麼是CSS Hack?

 一般來說是針對不同的瀏覽器寫不同的CSS,就是 CSS Hack。 IE瀏覽器Hack一般又分為三種,條件Hack、屬性級Hack、選擇符Hack(詳細參考CSS文檔:css文檔)。例如: // 

1、條件Hack 

// 2、屬性Hack .test{ color:#090\9; / For IE8+ / color:#f00; / For IE7 and earlier / _color:#ff0; / For IE6 and earlier */ } // 

3、選擇符Hack html .test{color:#090;} / For IE6 and earlier / html .test{color:#ff0;} / For IE7 /

簡述同步和異步的區別 

同步是阻塞模式,異步是非阻塞模式。 同步就是指一個進程在執行某個請求的時候,若該請求需要一段時間才能返回信息,那麼這個進程將會一直等待下去,直到收到返回信息才繼續執行下去; 異步是指進程不需要一直等下去,而是繼續執行下面的操作,不管其他進程的狀態。當有消息返回時系統會通知進程進行處理,這樣可以提高執行的效率。 

px和em的區別

px和em都是長度單位,區別是,px的值是固定的,指定是多少就是多少,計算比較容易。em得值不是固定的,並且em會繼承父級元素的字體大小。 瀏覽器的默認字體高都是16px。所以未經調整的瀏覽器都符合: 1em=16px。那麼12px=0.75em, 10px=0.625em

什麼叫優雅降級和漸進增強?

 漸進增強 progressive enhancement: 針對低版本瀏覽器進行構建頁面,保證最基本的功能,然後再針對高級瀏覽器進行效果、交互等改進和追加功能達到更好的用戶體驗。 優雅降級 graceful degradation: 一開始就構建完整的功能,然後再針對低版本瀏覽器進行兼容。 區別: a. 優雅降級是從複雜的現狀開始,並試圖減少用戶體驗的供給 b. 漸進增強則是從一個非常基礎的,能夠起作用的版本開始,並不斷擴充,以適應未來環境的需要 c. 降級(功能衰減)意味著往回看;而漸進增強則意味著朝前看,同時保證其根基處於安全地帶

瀏覽器的內核分別是什麼?

IE: trident內核 Firefox:gecko內核 Safari:webkit內核 Opera:以前是presto內核,Opera現已改用Google Chrome的Blink內核 Chrome:Blink(基於webkit,Google與Opera Software共同開發) JavaScript部分 

1、怎樣添加、移除、移動、複製、創建和查找節點?


  1)創建新節點 createDocumentFragment() //創建一個DOM片段 createElement() //創建一個具體的元素 createTextNode() //創建一個文本節點 2)添加、移除、替換、插入 appendChild() //添加 removeChild() //移除 replaceChild() //替換 insertBefore() //插入 3)查找 getElementsByTagName() //通過標籤名稱 getElementsByName() //通過元素的Name屬性的值 getElementById() //通過元素Id,唯一性

 2、實現一個函數clone

 可以對JavaScript中的5種主要的數據類型(包括Number、String、Object、Array、Boolean)進行值複製。 /** * 對象克隆 * 支持基本數據類型及對象 * 遞歸方法 */ function clone(obj) { var o; switch (typeof obj) { case "undefined": break; case "string": o = obj + ""; break; case "number": o = obj - 0; break; case "boolean": o = obj; break; case "object": // object 分為兩種情況 對象(Object)或數組(Array) if (obj === null) { o = null; } else { if (Object.prototype.toString.call(obj).slice(8, -1) === "Array") { o = []; for (var i = 0; i < obj.length; i++) { o.push(clone(obj[i])); } } else { o = {}; for (var k in obj) { o[k] = clone(obj[k]); } } } break; default: o = obj; break; } return o; } 

3、如何消除一個數組裡面重複的元素?

    // 方法一: var arr1 =[1,2,2,2,3,3,3,4,5,6], arr2 = []; for(var i = 0,len = arr1.length; i< len; i++){ if(arr2.indexOf(arr1[i]) < 0){ arr2.push(arr1[i]); } } document.write(arr2); // 1,2,3,4,5,6 

4、想實現一個對頁面某個節點的拖曳?如何做?

5、在Javascript中什麼是偽數組?

    如何將偽數組轉化為標準數組? 偽數組(類數組):無法直接調用數組方法或期望length屬性有什麼特殊的行為,但仍可以對真正數組遍歷方法來遍歷它們。典型的是函數的argument參數,還有像調用getElementsByTagName,document.childNodes之類的,它們都返回NodeList對象都屬於偽數組。可以使用Array.prototype.slice.call(fakeArray)將數組轉化為真正的Array對象。 function log(){ var args = Array.prototype.slice.call(arguments); //為了使用unshift數組方法,將argument轉化為真正的數組 args.unshift('(app)'); console.log.apply(console, args); };

 6、Javascript中callee和caller的作用?

 caller是返回一個對函數的引用,該函數調用了當前函數; callee是返回正在被執行的function函數,也就是所指定的function對象的正文。 

7、請描述一下cookies,sessionStorage和localStorage的區別

 sessionStorage用於本地存儲一個會話(session)中的數據,這些數據只有在同一個會話中的頁面才能訪問並且當會話結束後數據也隨之銷毀。因此sessionStorage不是一種持久化的本地存儲,僅僅是會話級別的存儲。而localStorage用於持久化的本地存儲,除非主動刪除數據,否則數據是永遠不會過期的。 web storage和cookie的區別 Web Storage的概念和cookie相似,區別是它是為了更大容量存儲設計的。Cookie的大小是受限的,並且每次你請求一個新的頁面的時候Cookie都會被發送過去,這樣無形中浪費了帶寬,另外cookie還需要指定作用域,不可以跨域調用。 除此之外,Web Storage擁有setItem,getItem,removeItem,clear等方法,不像cookie需要前端開發者自己封裝setCookie,getCookie。但是Cookie也是不可以或缺的:Cookie的作用是與伺服器進行交互,作為HTTP規範的一部分而存在 ,而Web Storage僅僅是為了在本地「存儲」數據而生。 

 8、手寫數組快速排序


  關於快排算法的詳細說明,可以參考阮一峰老師的文章快速排序 「快速排序」的思想很簡單,整個排序過程只需要三步: (1)在數據集之中,選擇一個元素作為」基準」(pivot)。 (2)所有小於」基準」的元素,都移到」基準」的左邊;所有大於」基準」的元素,都移到」基準」的右邊。 (3)對」基準」左邊和右邊的兩個子集,不斷重複第一步和第二步,直到所有子集只剩下一個元素為止。

 9、統計字符串


   "aaaabbbccccddfgh」中字母個數或統計最多字母數。 var str = "aaaabbbccccddfgh"; var obj = {}; for(var i=0

想獲取更多精彩內容

請關注千鋒互聯喲!

相關焦點

  • Web前端面試題目匯總
    來自: 燎原之火的博客 _ Lyzh's blog作者: Lyzh連結:http://blog.linjiajun.com/2016/03/15/2016年Web前端面試題目匯總/ (點擊尾部閱讀原文前往)以下是收集一些面試中經常會遇到的經典面試題以及自己面試過程中無法解決的問題,通過對知識的整理以及經驗的總結,重新鞏固自身的前端基礎知識,如有錯誤或更好的答案,歡迎指正。
  • 2020Web前端開發常見面試題匯總-開課吧
    2020Web前端面試題了解一些面試題及答案,可以幫助自己順利通過面試哦。以下是小編為大家整理的web前端面試題及答案,供各位參考。Web前端面試題:異步請求適合在哪個生命周期調?解析:官實例的異步請求是在mounted命周期中調的,實際上也可以在created命周期中調。Web前端面試題:各個生命周期的作用是什麼?
  • 2020最新Web前端經典面試題試題及答案(持續更新)-開課吧
    Web前端面試題Web前端面試題:說說你對webpack的看法解析:webpack是一個模塊打包工具,可以使用webpack能很好的管理、打包web開發中所用到的HTML、js、css以及各種靜態文件(圖片、字體等),讓開發過程更加高效。對於不同類型的資源,webpack有對應的模塊加載器。webpack模塊打包器會分析模塊間的依賴關係,最後生成了優化且合併後的靜態資源。
  • 答對這40道經典web前端面試題,想不拿到offer都難!
    想成功就業web前端工程師,想要能高薪就業,那麼除了好的web前端技能以外,還得有好的面試技巧,如果提前就了解更多企業的面試要求及面試題目,那麼可以讓我們的面試成功的機率大大的提高。今天小編就整理了一些經典的web前端面試題,希望可以祝大家一臂之力。一、HTML常見題目01、Doctype作用?嚴格模式與混雜模式如何區分?它們有何意義?02、HTML5為什麼只需要寫?
  • 2019 前端面試題匯總(主要為 Vue)
    (給前端大全加星標,提升前端技能)作者:前端小醬https://segmentfault.com/a/1190000018225708
  • web前端開發工程師面試題大全
    最近看到web群裡的人,特別關心面試web前端開發工程師時,面試官都會問那些問題,今天我整理了一份,web前端開發工程師崗位面試題的大全,大家可看看
  • 好程式設計師Web前端培訓分享jQuery面試題梳理
    好程式設計師Web前端培訓分享jQuery面試題梳理,目前jQuery在企業中的應用還是很普遍的,企業HR在招聘時也會考察求職者對jQuery的掌握。接下來的好程式設計師web前端培訓班就給大家簡單匯總了一些jQuery經典面試題及答案,希望能給大家帶來幫助。
  • 阿里盒馬前端面試,你要的答案來了
    最近有一篇阿里盒馬前端面試題被各大社區轉載,而且據稱這是阿里校招面試題,我看完以後,簡直驚呆了,打死都不信。今天特意針對他們發的一面,把對應的答案整理了一些。請先做個自我介紹 我是河畔一角,11年畢業,畢業後先從事JAVA方向開發,後在13年轉為前端。
  • 2020Web前端面試題匯總-開課吧
    Web前端面試題說說前端中的事件流?以上就是小科今天整理提供的Web前端開發面試題,希望為Web前端同學提供了有用的面試素材,以後小科每日均會提供Python、Web及MySQL資料庫相關的習題。學習沒有捷徑,希望大家都能少走一些彎路,順利找到工作!
  • Web前端知識體系梳理,值得收藏
    前言現在是資訊時代,經過 web1.0 時期、web2.0 時期到現在的移動網際網路時期,信息獲取越來越高效,坐著不動就會有大量的新聞、博客、資訊向你推薦而來。作為一名靠譜的程式設計師,你免不了要查閱大量的文章、視頻和書籍來充斥你的知識量,不斷學習。但是現在網上大量的信息堆積起來,對於你來說意味著什麼?
  • 2018web前端面試總結
    關於流程一般的實習&校招招聘大體有這麼一個流程:(這裡我個人都是走的官網投遞的渠道,沒有經歷過宣講會的環節,這一部分我沒啥經驗)筆試筆試作為招聘的第一個環節,一般考察的都是專業基礎知識,這裡會著重考察你在學校的計算機相關基礎,也就是很多人會發現,我明明考的是前端的卷子為啥前端的知識點考的這麼少,而且有時候也會發現,前端的卷子考的沒有前端的知識點
  • 2020Web前端工程師常見面試問題及答案解析
    Web前端面試題及答案 混合開發橋接api是怎麼調用的,需要引入類庫嘛? 調用的對象是什麼? Hybrid框架結構HyBrid App = H5 App + Native框架H5App用來實現功能邏輯和頁面渲染 Native框架提供WebView和設備接口供H5調用方案一種混合應用,在開發原生應用的基礎上,嵌入WebView但是整體的架構使用原生應用提供,一般這樣的開發由Native開發人員和Web前端開發人員組成。
  • 2020Web前端常見經典面試題及答案-開課吧
    Web前端常見面試題及答案問題:js有哪些類型?本文收錄了一些在Web前端開發面試中經常會遇到的面試題及答案,希望對大家有所幫助,若有所疏漏歡迎指正。
  • Web前端面試真的只掌握企業常用技能就行嗎?
    編者的話:面試是所有求職者最重視的一個環節,這決定著一個求職者是否能夠順利的求職成功,找到一個理想的工作,作為一個求職者,在面試之前,最關心的問題是面試官會問什麼樣的問題,自己該如何準備,本期筆者從Web前端崗位面試題目和要求進行分析,整理出Web前端學習者要重點學習和關注的幾大類技能和知識。
  • 阿里盒馬前端校招面試,你要的答案來了
    最近有一篇阿里盒馬前端面試題被各大社區轉載,而且據稱這是阿里校招面試題,我看完以後,簡直驚呆了,打死都不信
  • 2020Web前端開發常見面試題及答案全解析-開課吧Web前端
    Web前端開發問題一:前端如何進行seo優化,以下說法錯誤的是:A.爬蟲依賴於標籤來確定上下文和各個關鍵字的權重;解析:title 指圖片的信息(滑鼠移到圖片上顯示)、alt 指圖片不顯示時顯示的文字以上就是小科今天整理提供的Web前端開發面試題,希望為Web前端同學提供了有用的面試素材,以後酷仔每日均會提供Python及Web相關的習題。
  • 每日一學:2020Web前端面試題匯總,提高面試成功機率-開課吧
    本文收錄了一些在Web前端開發面試中經常會遇到的面試題及答案,希望對大家有所幫助,若有所疏漏歡迎指正。2020Web前端面試題Web前端面試題:怎樣查找字符串中出現最多的字符和個數?{ num= $0.length;char = $1;}});console.log(`字符最多的是${char},出現了${num}次`);Web前端面試題題
  • 開課吧:2020Web前端開發常見面試題及答案,提高面試通過率!
    Web前端開發面試題及答案問題:實現節流函數(throttle)解析:防抖函數原理:規定在個單位時間內,只能觸發次函數。以上就是小科今天整理提供的Web前端開發面試題,希望為Web前端同學提供了有用的面試素材,以後小科每日均會提供Python、Web及MySQL資料庫相關的習題。學習沒有捷徑,希望大家都能少走一些彎路,順利找到工作!
  • 南通web前端學習去哪家比較好
    現在南通包括其他各大城市,很多正在考慮學習web前端的同學們,都普遍對web前端有這樣一個認識:web前端入行門檻低、市場需求量大、未來發展有潛力,加之整個IT行業薪資水平很高,不少新手小白們以為通過自學網上看看視頻教程,就覺得完全能掌握好web前端技能了,但殊不知真到了面試時卻被無情的現實打臉,薪資可觀的自己能力夠不上,給的薪資低於自己預期的又不願意將就。
  • 乾貨 | Web前端經典面試題及答案
    上周,黑分享了關於Java的面試題,有學員反映需要前端方向的面試題,