QA-Q[轉(zhuǎn)載]

前端開發(fā)面試題 (題目列表頁)

轉(zhuǎn)載

<a name='list'>目錄</a>

  1. 前言
  2. HTML部分
  3. CSS部分
  4. JavaScript部分
  5. 其他問題
  6. 前端學(xué)習(xí)網(wǎng)站推薦

<a name='preface'>前言</a>

前言

<a name='html'>HTML</a>

  • Doctype作用?嚴(yán)格模式與混雜模式如何區(qū)分?它們有何意義?

  • HTML5 為什么只需要寫 <!DOCTYPE HTML>?

  • 行內(nèi)元素有哪些?塊級(jí)元素有哪些? 空(void)元素有那些?

  • 頁面導(dǎo)入樣式時(shí),使用link和@import有什么區(qū)別?

  • 介紹一下你對(duì)瀏覽器內(nèi)核的理解?

  • 常見的瀏覽器內(nèi)核有哪些?

  • html5有哪些新特性、移除了那些元素?如何處理HTML5新標(biāo)簽的瀏覽器兼容問題?如何區(qū)分 HTML 和
    HTML5?

  • 簡(jiǎn)述一下你對(duì)HTML語義化的理解?

  • HTML5的離線儲(chǔ)存怎么使用,工作原理能不能解釋一下?

  • 瀏覽器是怎么對(duì)HTML5的離線儲(chǔ)存資源進(jìn)行管理和加載的呢?

  • 請(qǐng)描述一下 cookies,sessionStorage 和 localStorage 的區(qū)別?

  • iframe有那些缺點(diǎn)?

  • Label的作用是什么?是怎么用的?(加 for 或 包裹)

  • HTML5的form如何關(guān)閉自動(dòng)完成功能?

  • 如何實(shí)現(xiàn)瀏覽器內(nèi)多個(gè)標(biāo)簽頁之間的通信? (阿里)

  • webSocket如何兼容低瀏覽器?(阿里)

  • 頁面可見性(Page Visibility API) 可以有哪些用途?

  • 如何在頁面上實(shí)現(xiàn)一個(gè)圓形的可點(diǎn)擊區(qū)域?

  • 實(shí)現(xiàn)不使用 border 畫出1px高的線,在不同瀏覽器的Quirksmode和CSSCompat模式下都能保持同一效果。

  • 網(wǎng)頁驗(yàn)證碼是干嘛的,是為了解決什么安全問題?

  • title與h1的區(qū)別、b與strong的區(qū)別、i與em的區(qū)別?

<a name='css'>CSS</a>

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

  • CSS選擇符有哪些?哪些屬性可以繼承?

  • CSS優(yōu)先級(jí)算法如何計(jì)算?

  • CSS3新增偽類有那些?

  • 如何居中div?如何居中一個(gè)浮動(dòng)元素?如何讓絕對(duì)定位的div居中?

  • display有哪些值?說明他們的作用。

  • position的值relative和absolute定位原點(diǎn)是?

  • CSS3有哪些新特性?

  • 請(qǐng)解釋一下CSS3的Flexbox(彈性盒布局模型),以及適用場(chǎng)景?

  • 用純CSS創(chuàng)建一個(gè)三角形的原理是什么?

  • 一個(gè)滿屏 品 字布局 如何設(shè)計(jì)?

  • 經(jīng)常遇到的瀏覽器的兼容性有哪些?原因,解決方法是什么,常用hack的技巧 ?

  • li與li之間有看不見的空白間隔是什么原因引起的?有什么解決辦法?

  • 為什么要初始化CSS樣式?

  • absolute的containing block計(jì)算方式跟正常流有什么不同?

  • CSS里的visibility屬性有個(gè)collapse屬性值是干嘛用的?在不同瀏覽器下以后什么區(qū)別?

  • position跟display、margin collapse、overflow、float這些特性相互疊加后會(huì)怎么樣?

  • 對(duì)BFC規(guī)范(塊級(jí)格式化上下文:block formatting context)的理解?

  • CSS權(quán)重優(yōu)先級(jí)是如何計(jì)算的?

  • 請(qǐng)解釋一下為什么會(huì)出現(xiàn)浮動(dòng)和什么時(shí)候需要清除浮動(dòng)?清除浮動(dòng)的方式

  • 移動(dòng)端的布局用過媒體查詢嗎?

  • 使用 CSS 預(yù)處理器嗎?喜歡那個(gè)?

  • CSS優(yōu)化、提高性能的方法有哪些?

  • 瀏覽器是怎樣解析CSS選擇器的?

  • 在網(wǎng)頁中的應(yīng)該使用奇數(shù)還是偶數(shù)的字體?為什么呢?

  • margin和padding分別適合什么場(chǎng)景使用?

  • 抽離樣式模塊怎么寫,說出思路,有無實(shí)踐經(jīng)驗(yàn)?[阿里航旅的面試題]

  • 元素豎向的百分比設(shè)定是相對(duì)于容器的高度嗎?

  • 全屏滾動(dòng)的原理是什么?用到了CSS的那些屬性?

  • 什么是響應(yīng)式設(shè)計(jì)?響應(yīng)式設(shè)計(jì)的基本原理是什么?如何兼容低版本的IE?

  • 視差滾動(dòng)效果,如何給每頁做不同的動(dòng)畫?(回到頂部,向下滑動(dòng)要再次出現(xiàn),和只出現(xiàn)一次分別怎么做?)

  • ::before 和 :after中雙冒號(hào)和單冒號(hào) 有什么區(qū)別?解釋一下這2個(gè)偽元素的作用。

  • 如何修改chrome記住密碼后自動(dòng)填充表單的黃色背景 ?

  • 你對(duì)line-height是如何理解的?

  • 設(shè)置元素浮動(dòng)后,該元素的display值是多少?(自動(dòng)變成display:block)

  • 怎么讓Chrome支持小于12px 的文字?

  • 讓頁面里的字體變清晰,變細(xì)用CSS怎么做?(-webkit-font-smoothing: antialiased;)

  • font-style屬性可以讓它賦值為“oblique” oblique是什么意思?

  • position:fixed;在android下無效怎么處理?

  • 如果需要手動(dòng)寫動(dòng)畫,你認(rèn)為最小時(shí)間間隔是多久,為什么?(阿里)

  • display:inline-block 什么時(shí)候會(huì)顯示間隙?(攜程)

  • overflow: scroll時(shí)不能平滑滾動(dòng)的問題怎么處理?

  • 有一個(gè)高度自適應(yīng)的div,里面有兩個(gè)div,一個(gè)高度100px,希望另一個(gè)填滿剩下的高度。

  • png、jpg、gif 這些圖片格式解釋一下,分別什么時(shí)候用。有沒有了解過webp?

  • 什么是Cookie 隔離?(或者說:請(qǐng)求資源的時(shí)候不要讓它帶cookie怎么做)

  • style標(biāo)簽寫在body后與body前有什么區(qū)別?

  • 什么是CSS 預(yù)處理器 / 后處理器?

<a name='js'>JavaScript</a>

  • 介紹JavaScript的基本數(shù)據(jù)類型。

  • 說說寫JavaScript的基本規(guī)范?

  • JavaScript原型,原型鏈 ? 有什么特點(diǎn)?

  • JavaScript有幾種類型的值?(堆:原始數(shù)據(jù)類型和 棧:引用數(shù)據(jù)類型),你能畫一下他們的內(nèi)存圖嗎?

  • Javascript如何實(shí)現(xiàn)繼承?

  • Javascript創(chuàng)建對(duì)象的幾種方式?

  • Javascript作用鏈域?

  • 談?wù)則his對(duì)象的理解。

  • eval是做什么的?

  • 什么是window對(duì)象? 什么是document對(duì)象?

  • null,undefined的區(qū)別?

  • 寫一個(gè)通用的事件偵聽器函數(shù)(機(jī)試題)。

  • ["1", "2", "3"].map(parseInt) 答案是多少?

  • 關(guān)于事件,IE與火狐的事件機(jī)制有什么區(qū)別? 如何阻止冒泡?

  • 什么是閉包(closure),為什么要用它?

  • javascript 代碼中的"use strict";是什么意思 ? 使用它區(qū)別是什么?

  • 如何判斷一個(gè)對(duì)象是否屬于某個(gè)類?

  • new操作符具體干了什么呢?

  • 用原生JavaScript的實(shí)現(xiàn)過什么功能嗎?

  • Javascript中,有一個(gè)函數(shù),執(zhí)行時(shí)對(duì)象查找時(shí),永遠(yuǎn)不會(huì)去查找原型,這個(gè)函數(shù)是?

  • 對(duì)JSON的了解?

  • [].forEach.call($$("*"),function(a){ a.style.outline="1px solid #"+(~~(Math.random()*(1<<24))).toString(16) }) 能解釋一下這段代碼的意思嗎?

  • js延遲加載的方式有哪些?

  • Ajax 是什么? 如何創(chuàng)建一個(gè)Ajax?

  • 同步和異步的區(qū)別?

  • 如何解決跨域問題?

  • 頁面編碼和被請(qǐng)求的資源編碼如果不一致如何處理?

  • 模塊化開發(fā)怎么做?

  • AMD(Modules/Asynchronous-Definition)、CMD(Common Module Definition)規(guī)范區(qū)別?

  • requireJS的核心原理是什么?(如何動(dòng)態(tài)加載的?如何避免多次加載的?如何
    緩存的?)

  • 談一談你對(duì)ECMAScript6的了解?

  • ECMAScript6 怎么寫class,為什么會(huì)出現(xiàn)class這種東西?

  • 異步加載的方式有哪些?

  • documen.write和 innerHTML的區(qū)別?

  • DOM操作——怎樣添加、移除、移動(dòng)、復(fù)制、創(chuàng)建和查找節(jié)點(diǎn)?

  • .call() 和 .apply() 的作用和區(qū)別?

  • 數(shù)組和對(duì)象有哪些原生方法,列舉一下?

  • JS 怎么實(shí)現(xiàn)一個(gè)類。怎么實(shí)例化這個(gè)類

  • JavaScript中的作用域與變量聲明提升?

  • 如何編寫高性能的Javascript?

  • 那些操作會(huì)造成內(nèi)存泄漏?

  • JQuery的源碼看過嗎?能不能簡(jiǎn)單概況一下它的實(shí)現(xiàn)原理?

  • jQuery.fn的init方法返回的this指的是什么對(duì)象?為什么要返回this?

  • jquery中如何將數(shù)組轉(zhuǎn)化為json字符串,然后再轉(zhuǎn)化回來?

  • jQuery 的屬性拷貝(extend)的實(shí)現(xiàn)原理是什么,如何實(shí)現(xiàn)深拷貝?

  • jquery.extend 與 jquery.fn.extend的區(qū)別?

  • jQuery 的隊(duì)列是如何實(shí)現(xiàn)的?隊(duì)列可以用在哪些地方?

  • 談一下Jquery中的bind(),live(),delegate(),on()的區(qū)別?

  • JQuery一個(gè)對(duì)象可以同時(shí)綁定多個(gè)事件,這是如何實(shí)現(xiàn)的?

  • 是否知道自定義事件。jQuery里的fire函數(shù)是什么意思,什么時(shí)候用?

  • jQuery 是通過哪個(gè)方法和 Sizzle 選擇器結(jié)合的?(jQuery.fn.find()進(jìn)入Sizzle)

  • 針對(duì) jQuery性能的優(yōu)化方法?

  • Jquery與jQuery UI有啥區(qū)別?

  • JQuery的源碼看過嗎?能不能簡(jiǎn)單說一下它的實(shí)現(xiàn)原理?

  • jquery 中如何將數(shù)組轉(zhuǎn)化為json字符串,然后再轉(zhuǎn)化回來?

  • jQuery和Zepto的區(qū)別?各自的使用場(chǎng)景?

  • 針對(duì) jQuery 的優(yōu)化方法?

  • Zepto的點(diǎn)透問題如何解決?

  • jQueryUI如何自定義組件?

  • 需求:實(shí)現(xiàn)一個(gè)頁面操作不會(huì)整頁刷新的網(wǎng)站,并且能在瀏覽器前進(jìn)、后退時(shí)正確響應(yīng)。給出你的技術(shù)實(shí)現(xiàn)方案?

  • 如何判斷當(dāng)前腳本運(yùn)行在瀏覽器還是node環(huán)境中?(阿里)

  • 移動(dòng)端最小觸控區(qū)域是多大?

  • jQuery 的 slideUp動(dòng)畫 ,如果目標(biāo)元素是被外部事件驅(qū)動(dòng), 當(dāng)鼠標(biāo)快速地連續(xù)觸發(fā)外部元素事件, 動(dòng)畫會(huì)滯后的反復(fù)執(zhí)行,該如何處理呢?

  • 把 Script 標(biāo)簽 放在頁面的最底部的body封閉之前 和封閉之后有什么區(qū)別?瀏覽器會(huì)如何解析它們?

  • 移動(dòng)端的點(diǎn)擊事件的有延遲,時(shí)間是多久,為什么會(huì)有? 怎么解決這個(gè)延時(shí)?(click 有 300ms 延遲,為了實(shí)現(xiàn)safari的雙擊事件的設(shè)計(jì),瀏覽器要知道你是不是要雙擊操作。)

  • 知道各種JS框架(Angular, Backbone, Ember, React, Meteor, Knockout...)么? 能講出他們各自的優(yōu)點(diǎn)和缺點(diǎn)么?

  • Underscore 對(duì)哪些 JS 原生對(duì)象進(jìn)行了擴(kuò)展以及提供了哪些好用的函數(shù)方法?

  • 解釋JavaScript中的作用域與變量聲明提升?

  • 那些操作會(huì)造成內(nèi)存泄漏?

  • JQuery一個(gè)對(duì)象可以同時(shí)綁定多個(gè)事件,這是如何實(shí)現(xiàn)的?

  • Node.js的適用場(chǎng)景?

  • (如果會(huì)用node)知道route, middleware, cluster, nodemon, pm2, server-side rendering么?

  • 解釋一下 Backbone 的 MVC 實(shí)現(xiàn)方式?

  • 什么是“前端路由”?什么時(shí)候適合使用“前端路由”? “前端路由”有哪些優(yōu)點(diǎn)和缺點(diǎn)?

  • 知道什么是webkit么? 知道怎么用瀏覽器的各種工具來調(diào)試和debug代碼么?

  • 如何測(cè)試前端代碼么? 知道BDD, TDD, Unit Test么? 知道怎么測(cè)試你的前端工程么(mocha, sinon, jasmin, qUnit..)?

  • 前端templating(Mustache, underscore, handlebars)是干嘛的, 怎么用?

  • 簡(jiǎn)述一下 Handlebars 的基本用法?

  • 簡(jiǎn)述一下 Handlerbars 的對(duì)模板的基本處理流程, 如何編譯的?如何緩存的?

  • 用js實(shí)現(xiàn)千位分隔符?(來源:前端農(nóng)民工,提示:正則+replace)

  • 檢測(cè)瀏覽器版本版本有哪些方式?

  • What is a Polyfill?

  • 做的項(xiàng)目中,有沒有用過或自己實(shí)現(xiàn)一些 polyfill 方案(兼容性處理方案)?

  • 我們給一個(gè)dom同時(shí)綁定兩個(gè)點(diǎn)擊事件,一個(gè)用捕獲,一個(gè)用冒泡。會(huì)執(zhí)行幾次事件,會(huì)先執(zhí)行冒泡還是捕獲?

<a name='other'>ECMAScript6 相關(guān)</a>

  • Object.is() 與原來的比較操作符“ ===”、“ ==”的區(qū)別?

<a name='other'>前端框架相關(guān)</a>

  • react-router 路由系統(tǒng)的實(shí)現(xiàn)原理?
  • React中如何解決第三方類庫(kù)的問題?

<a name='other'>其他問題</a>

  • 原來公司工作流程是怎么樣的,如何與其他人協(xié)作的?如何夸部門合作的?

  • 你遇到過比較難的技術(shù)問題是?你是如何解決的?

  • 設(shè)計(jì)模式 知道什么是singleton, factory, strategy, decrator么?

  • 常使用的庫(kù)有哪些?常用的前端開發(fā)工具?開發(fā)過什么應(yīng)用或組件?

  • 頁面重構(gòu)怎么操作?

  • 列舉IE與其他瀏覽器不一樣的特性?

  • 99%的網(wǎng)站都需要被重構(gòu)是那本書上寫的?

  • 什么叫優(yōu)雅降級(jí)和漸進(jìn)增強(qiáng)?

  • 是否了解公鑰加密和私鑰加密。

  • WEB應(yīng)用從服務(wù)器主動(dòng)推送Data到客戶端有那些方式?

  • 對(duì)Node的優(yōu)點(diǎn)和缺點(diǎn)提出了自己的看法?

  • 你有用過哪些前端性能優(yōu)化的方法?

  • http狀態(tài)碼有那些?分別代表是什么意思?

  • 一個(gè)頁面從輸入 URL 到頁面加載顯示完成,這個(gè)過程中都發(fā)生了什么?(流程說的越詳細(xì)越好)

  • 部分地區(qū)用戶反應(yīng)網(wǎng)站很卡,請(qǐng)問有哪些可能性的原因,以及解決方法?

  • 從打開app到刷新出內(nèi)容,整個(gè)過程中都發(fā)生了什么,如果感覺慢,怎么定位問題,怎么解決?

  • 除了前端以外還了解什么其它技術(shù)么?你最最厲害的技能是什么?

  • 你用的得心應(yīng)手用的熟練地編輯器&開發(fā)環(huán)境是什么樣子?

  • 對(duì)前端界面工程師這個(gè)職位是怎么樣理解的?它的前景會(huì)怎么樣?

  • 你怎么看待Web App 、hybrid App、Native App?

  • 你移動(dòng)端前端開發(fā)的理解?(和 Web 前端開發(fā)的主要區(qū)別是什么?)

  • 你對(duì)加班的看法?

  • 平時(shí)如何管理你的項(xiàng)目?

  • 說說最近最流行的一些東西吧?常去哪些網(wǎng)站?

  • 如何設(shè)計(jì)突發(fā)大規(guī)模并發(fā)架構(gòu)?

  • 說說最近最流行的一些東西吧?常去哪些網(wǎng)站?

  • 是否了解開源的工具 bower、npm、yeoman、grunt、gulp,一個(gè) npm 的包里的 package.json 具備的必要的字段都有哪些?(名稱、版本號(hào),依賴)

  • 每個(gè)模塊的代碼結(jié)構(gòu)都應(yīng)該比較簡(jiǎn)單,且每個(gè)模塊之間的關(guān)系也應(yīng)該非常清晰,隨著功能和迭代次數(shù)越來越多,你會(huì)如何去保持這個(gè)狀態(tài)的?

  • Git知道branch, diff, merge么?

  • 如何設(shè)計(jì)突發(fā)大規(guī)模并發(fā)架構(gòu)?

  • 當(dāng)團(tuán)隊(duì)人手不足,把功能代碼寫完已經(jīng)需要加班的情況下,你會(huì)做前端代碼的測(cè)試嗎?

  • 說說最近最流行的一些東西吧?平時(shí)常去哪些網(wǎng)站?

  • 知道什么是SEO并且怎么優(yōu)化么? 知道各種meta data的含義么?

  • 移動(dòng)端(Android IOS)怎么做好用戶體驗(yàn)?

  • 簡(jiǎn)單描述一下你做過的移動(dòng)APP項(xiàng)目研發(fā)流程?

  • 你在現(xiàn)在的團(tuán)隊(duì)處于什么樣的角色,起到了什么明顯的作用?

  • 你認(rèn)為怎樣才是全端工程師(Full Stack developer)?

  • 介紹一個(gè)你最得意的作品吧?

  • 你有自己的技術(shù)博客嗎,用了哪些技術(shù)?

  • 對(duì)前端安全有什么看法?

  • 是否了解Web注入攻擊,說下原理,最常見的兩種攻擊(XSS 和 CSRF)了解到什么程度?

  • 項(xiàng)目中遇到國(guó)哪些印象深刻的技術(shù)難題,具體是什么問題,怎么解決?。

  • 最近在學(xué)什么東西?

  • 你的優(yōu)點(diǎn)是什么?缺點(diǎn)是什么?

  • 如何管理前端團(tuán)隊(duì)?

  • 最近在學(xué)什么?能談?wù)勀阄磥?,5年給自己的規(guī)劃嗎?

有趣的問題

  • .A、B兩人分別在兩座島上。B生病了,A有B所需要的藥。C有一艘小船和一個(gè)可以上鎖的箱子。C愿意在A和B之間運(yùn)東西,但東西只能放在箱子里。只要箱子沒被上鎖,C都會(huì)偷走箱子里的東西,不管箱子里有什么。如果A和B各自有一把鎖和只能開自己那把鎖的鑰匙,A應(yīng)該如何把東西安全遞交給B?
    答案:A把藥放進(jìn)箱子,用自己的鎖把箱子鎖上。B拿到箱子后,再在箱子上加一把自己的鎖。
    箱子運(yùn)回A后,A取下自己的鎖。箱子再運(yùn)到B手中時(shí),B取下自己的鎖,獲得藥物。
  • Amazon主頁的左上角有一個(gè)商品分類瀏覽的下拉菜單 沒有延遲,而且子菜單也不會(huì)在不應(yīng)該的時(shí)候消失。它是怎樣做到這一點(diǎn)的呢?

       答案是通過探測(cè)鼠標(biāo)移動(dòng)的方向和軌跡,具體查看Khan Academy工程師 Ben Kamens 寫的 jQuery插件
    
這是 Khan Academy工程師 Ben Kamens 寫的 jQuery插件

<a name='web'>前端學(xué)習(xí)網(wǎng)站推薦</a>

1. 極客標(biāo)簽:     http://www.gbtags.com/

2. 碼農(nóng)周刊:     http://weekly.manong.io/issues/

3. 前端周刊:     http://www.feweekly.com/issues

4. 慕課網(wǎng):       http://www.imooc.com/

5. div.io:       http://div.io

6. Hacker News: https://news.ycombinator.com/news

7. InfoQ:       http://www.infoq.com/

8. w3cplus:     http://www.w3cplus.com/

9. Stack Overflow: http://stackoverflow.com/

10.w3school:    http://www.w3school.com.cn/

11.mozilla:     https://developer.mozilla.org/zh-CN/docs/Web/

<a name='web'>文檔推薦</a>

  1. jQuery 基本原理

  2. JavaScript 秘密花園

  3. CSS參考手冊(cè)

  4. JavaScript 標(biāo)準(zhǔn)參考教程

  5. ECMAScript 6入門

更新時(shí)間: 2016-3-25

資料答案不夠正確和全面,歡迎歡迎Star和提交issues。我的微博:http://weibo.com/920802999
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 在線閱讀 http://interview.poetries.top[http://interview.poetr...
    前端進(jìn)階之旅閱讀 114,837評(píng)論 24 450
  • <a name='html'>HTML</a> Doctype作用?標(biāo)準(zhǔn)模式與兼容模式各有什么區(qū)別? (1)、<...
    clark124閱讀 3,567評(píng)論 1 19
  • 在流言蜚語的世俗 我們的愛情脆弱易碎 斑駁如玻璃還會(huì)劃破自尊的心 浪漫和熱烈自欺欺人 長(zhǎng)情和誓言背信棄義 無法沉迷...
    無水能活的魚閱讀 301評(píng)論 8 7
  • 許多年后。誰還會(huì)記得我現(xiàn)在的樣子? 許多年后。誰還會(huì)記得我現(xiàn)在的聲調(diào)? 或許早已都遺忘。
    我可能患有孤獨(dú)癥閱讀 246評(píng)論 0 0
  • 如果你愿意相信命中注定,端好小板凳! 不得不承認(rèn),陪伴確實(shí)是最長(zhǎng)情的告白。在他們?nèi)ヅ慕Y(jié)婚照,去定婚慶公司的時(shí)候,和...
    他叫郭嘯羽閱讀 838評(píng)論 1 10