要想在眾多面試者中脫穎而出,就需要具備過(guò)硬的專業(yè)技能。如何提升自身的專業(yè)技能呢,首先需要不斷的進(jìn)行專業(yè)知識(shí)的學(xué)習(xí),可以選擇專業(yè)的培訓(xùn)機(jī)構(gòu)或者自學(xué),同時(shí)在求職階段,多刷面試題,例如下面的HTML5經(jīng)典面試題集錦。
1.百度移動(dòng)端首頁(yè)秒開是如何做到的?
從幾個(gè)方面優(yōu)化:
(1)靜態(tài)文件放置
(2)緩存
(3)外鏈
(4)緩存DOM
(5)使用iconfont
(6)卡片的異步加載與緩存
(7)不在首屏的就要異步化
(8)少量靜態(tài)文件的域名
2.前端速度統(tǒng)計(jì)(性能統(tǒng)計(jì))如何做?
回答下面的兩個(gè)問(wèn)題:
(1)網(wǎng)站都有哪些指標(biāo)?
(2)如何統(tǒng)計(jì)自己網(wǎng)站的這些指標(biāo)?
架構(gòu)
3.如果讓你來(lái)制作一個(gè)訪問(wèn)量很高的大型網(wǎng)站,你會(huì)如何來(lái)管理所有css、js文件、圖片?
(1)遵循自定的一套CSS,JS和圖片文件和文件夾命名規(guī)范
(2)依托采用的前端工程化工具,依照工具腳手架規(guī)范 (gulp, webpack, grunt, yeoman)
(3)依據(jù)采用的框架規(guī)范(Vue, React, jQuery)
4.如果沒(méi)有框架、怎么搭建你的項(xiàng)目
應(yīng)用原生JS自己嘗試搭建一個(gè)MVC架構(gòu):
(1) 基本模塊
common:公共的一組件,下面的各模塊都會(huì)用到
config:配置模塊,解決框架的配置問(wèn)題
startup:?jiǎn)?dòng)模塊,解決框架和Servlet如何進(jìn)行整合的問(wèn)題
plugin:插件模塊,插件機(jī)制的實(shí)現(xiàn),提供IPlugin的抽象實(shí)現(xiàn)
routing:路由模塊,解決請(qǐng)求路徑的解析問(wèn)題,提供了IRoute的抽象實(shí)現(xiàn)和基本實(shí)現(xiàn)
controller:控制器模塊,解決的是如何產(chǎn)生控制器
model:視圖模型模塊,解決的是如何綁定方法的參數(shù)
action:action模塊,解決的是如何調(diào)用方法以及方法返回的結(jié)果,提供了IActionResult的抽象實(shí)現(xiàn)和基本實(shí)現(xiàn)
view:視圖模塊,解決的是各種視圖引擎和框架的適配
filter:過(guò)濾器模塊,解決是執(zhí)行Action,返回IActionResult前后的AOP功能,提供了IFilter的抽象實(shí)現(xiàn)以及基本實(shí)現(xiàn)
(2)擴(kuò)展模塊
filters:一些IFilter的實(shí)現(xiàn)
results:一些IActionResult的實(shí)現(xiàn)
routes:一些IRoute的實(shí)現(xiàn)
plugins:一些IPlugin的實(shí)現(xiàn)
5.在選擇框架的時(shí)候要從哪方面入手?
影響團(tuán)隊(duì)技術(shù)選型有很多因素,如技術(shù)組成,新技術(shù),新框架,語(yǔ)言及發(fā)布等。為了更好的考量不同的因素,需要列出重要的象限,如開發(fā)效率、團(tuán)隊(duì)喜好,依次來(lái)決定哪個(gè)框架更適合當(dāng)前的團(tuán)隊(duì)和項(xiàng)目。上線時(shí)間影響框架選擇,不要盲目替換現(xiàn)有框架。
(1)jQuery
項(xiàng)目功能比較簡(jiǎn)單。并不需要做成一個(gè)單頁(yè)面應(yīng)用,就不需要 MV* 框架。項(xiàng)目是一個(gè)遺留系統(tǒng)。與其使用其他框架來(lái)替換,不如留著以后重寫項(xiàng)目。
(2)AngularJS
當(dāng)我們?cè)谥谱饕粋€(gè)應(yīng)用,它對(duì)性能要求不是很高的時(shí)候,那么我們應(yīng)該選擇開發(fā)速度更快的技術(shù)棧AngularJS,她擁有混合開發(fā)能力的ionic框架。對(duì)于復(fù)雜的前端應(yīng)用來(lái)說(shuō),基于 Angular.js 應(yīng)用的運(yùn)行效率,仍然有大量地改進(jìn)空間。Angular2需要學(xué)習(xí)新的語(yǔ)言,需慎重選擇。
(3)React
選擇React有兩個(gè)原因,一是通過(guò)Virtual DOM提高運(yùn)行效率,二是通過(guò)組件化提高開發(fā)效率。大型項(xiàng)目**。選擇 React 還有一個(gè)原因是:React Native、React VR 等等,可以讓 React 運(yùn)行在不同的平臺(tái)之上。我們還能通過(guò) React **編寫出原生應(yīng)用,還有 VR 應(yīng)用。
令人遺憾的是 React 只是一個(gè) View 層,它是為了優(yōu)化 DOM 的操作而誕生的。為了完成一個(gè)完整的應(yīng)用,我們還需要路由庫(kù)、執(zhí)行單向流庫(kù)、web API 調(diào)用庫(kù)、測(cè)試庫(kù)、依賴管理庫(kù)等等,為了完整搭建出一個(gè)完整的 React 項(xiàng)目,我們還需要做大量的額外工作。
(4)Vue.js
對(duì)于使用 Vue.js 的開發(fā)者來(lái)說(shuō),我們?nèi)匀豢梢允褂?熟悉的 HTML 和 CSS 來(lái)編寫代碼。并且,Vue.js 也使用了 Virtual DOM、Reactive 及組件化的思想,可以讓我們集中精力于編寫應(yīng)用,而不是應(yīng)用的性能。
對(duì)于沒(méi)有 Angular 和 React 經(jīng)驗(yàn)的團(tuán)隊(duì),并且規(guī)模不大的前端項(xiàng)目來(lái)說(shuō),Vue.js 是一個(gè)非常好的選擇。
以上HTML5經(jīng)典面試題集錦是在面試的過(guò)程中經(jīng)常會(huì)遇到的,建議大家多花些時(shí)間進(jìn)行記憶、聯(lián)系,以便在面試的時(shí)候做到得心應(yīng)手。更多關(guān)于Web問(wèn)題,歡迎咨詢千鋒教育在線名師,如果想要了解我們的師資、課程、項(xiàng)目實(shí)操的話可以點(diǎn)擊咨詢課程顧問(wèn),獲取試聽資格來(lái)試聽我們的課程,在線零距離接觸千鋒教育大咖名師,讓你輕松從入門到精通。