web前端高級(jí)面試題2021(2021年web前端面試題)
今天給各位分享web前端高級(jí)面試題2021的知識(shí),其中也會(huì)對(duì)2021年web前端面試題進(jìn)行解釋?zhuān)绻芘銮山鉀Q你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!
本文目錄一覽:
- 1、有哪些經(jīng)典的 Web 前端或者 JavaScript 面試筆試題
- 2、面試web前端的工作,會(huì)被問(wèn)到什么問(wèn)題
- 3、前端面試題-服務(wù)端渲染SSR
- 4、史上最全前端vue面試題!推薦收藏
- 5、2021上海中級(jí)前端面試常問(wèn)問(wèn)題整理
- 6、web前端開(kāi)發(fā)面試流程是怎樣的?
有哪些經(jīng)典的 Web 前端或者 JavaScript 面試筆試題
Doctype作用?嚴(yán)格模式與混雜模式如何區(qū)分?它們有何意義?
HTML5 為什么只需要寫(xiě) !DOCTYPE HTML?
行內(nèi)元素有哪些?塊級(jí)元素有哪些? 空(void)元素有那些?
頁(yè)面導(dǎo)入樣式時(shí),使用link和@import有什么區(qū)別?
介紹一下你對(duì)瀏覽器內(nèi)核的理解?
常見(jiàn)的瀏覽器內(nèi)核有哪些?
html5有哪些新特性、移除了那些元素?如何處理HTML5新標(biāo)簽的瀏覽器兼容問(wèn)題?如何區(qū)分 HTML 和 HTML5?
簡(jiǎn)述一下你對(duì)HTML語(yǔ)義化的理解?
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)簽頁(yè)之間的通信? (阿里)
webSocket如何兼容低瀏覽器?(阿里)
頁(yè)面可見(jiàn)性(Page Visibility)API 可以有哪些用途?
如何在頁(yè)面上實(shí)現(xiàn)一個(gè)圓形的可點(diǎn)擊區(qū)域?
實(shí)現(xiàn)不使用 border 畫(huà)出1px高的線,在不同瀏覽器的Quirksmode和CSSCompat模式下都能保持同一效果。
網(wǎng)頁(yè)驗(yàn)證碼是干嘛的,是為了解決什么安全問(wèn)題?
tite與h1的區(qū)別、b與strong的區(qū)別、i與em的區(qū)別?
CSS
介紹一下標(biāo)準(zhǔn)的CSS的盒子模型?與低版本IE的盒子模型有什么不同的?
CSS選擇符有哪些?哪些屬性可以繼承?
CSS優(yōu)先級(jí)算法如何計(jì)算?
CSS3新增偽類(lèi)有那些?
如何居中div?如何居中一個(gè)浮動(dòng)元素?如何讓絕對(duì)定位的div居中?
display有哪些值?說(shuō)明他們的作用。
position的值relative和absolute定位原點(diǎn)是?
CSS3有哪些新特性?
請(qǐng)解釋一下CSS3的Flexbox(彈性盒布局模型),以及適用場(chǎng)景?
用純CSS創(chuàng)建一個(gè)三角形的原理是什么?
一個(gè)滿屏 品 字布局 如何設(shè)計(jì)?
常見(jiàn)兼容性問(wèn)題?
li與li之間有看不見(jiàn)的空白間隔是什么原因引起的?有什么解決辦法?
經(jīng)常遇到的瀏覽器的兼容性有哪些?原因,解決方法是什么,常用hack的技巧 ?
為什么要初始化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)端的布局用過(guò)媒體查詢(xún)嗎?
使用 CSS 預(yù)處理器嗎?喜歡那個(gè)?
CSS優(yōu)化、提高性能的方法有哪些?
瀏覽器是怎樣解析CSS選擇器的?
在網(wǎng)頁(yè)中的應(yīng)該使用奇數(shù)還是偶數(shù)的字體?為什么呢?
margin和padding分別適合什么場(chǎng)景使用?
抽離樣式模塊怎么寫(xiě),說(shuō)出思路,有無(wú)實(shí)踐經(jīng)驗(yàn)?[阿里航旅的面試題]
元素豎向的百分比設(shè)定是相對(duì)于容器的高度嗎?
全屏滾動(dòng)的原理是什么?用到了CSS的那些屬性?
什么是響應(yīng)式設(shè)計(jì)?響應(yīng)式設(shè)計(jì)的基本原理是什么?如何兼容低版本的IE?
視差滾動(dòng)效果,如何給每頁(yè)做不同的動(dòng)畫(huà)?(回到頂部,向下滑動(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 的文字?
讓頁(yè)面里的字體變清晰,變細(xì)用CSS怎么做?(-webkit-font-smoothing: antialiased;)
font-style屬性可以讓它賦值為“oblique” oblique是什么意思?
position:fixed;在android下無(wú)效怎么處理?
如果需要手動(dòng)寫(xiě)動(dòng)畫(huà),你認(rèn)為最小時(shí)間間隔是多久,為什么?(阿里)
display:inline-block 什么時(shí)候會(huì)顯示間隙?(攜程)
overflow: scroll時(shí)不能平滑滾動(dòng)的問(wèn)題怎么處理?
有一個(gè)高度自適應(yīng)的div,里面有兩個(gè)div,一個(gè)高度100px,希望另一個(gè)填滿剩下的高度。
png、jpg、gif 這些圖片格式解釋一下,分別什么時(shí)候用。有沒(méi)有了解過(guò)webp?
什么是Cookie 隔離?(或者說(shuō):請(qǐng)求資源的時(shí)候不要讓它帶cookie怎么做)
style標(biāo)簽寫(xiě)在body后與body前有什么區(qū)別?
JavaScript
介紹JavaScript的基本數(shù)據(jù)類(lèi)型。
說(shuō)說(shuō)寫(xiě)JavaScript的基本規(guī)范?
JavaScript原型,原型鏈 ? 有什么特點(diǎn)?
JavaScript有幾種類(lèi)型的值?(堆:原始數(shù)據(jù)類(lèi)型和 棧:引用數(shù)據(jù)類(lèi)型),你能畫(huà)一下他們的內(nèi)存圖嗎?
Javascript如何實(shí)現(xiàn)繼承?
Javascript創(chuàng)建對(duì)象的幾種方式?
Javascript作用鏈域?
談?wù)凾his對(duì)象的理解。
eval是做什么的?
什么是window對(duì)象? 什么是document對(duì)象?
null,undefined的區(qū)別?
寫(xiě)一個(gè)通用的事件偵聽(tīng)器函數(shù)(機(jī)試題)。
[“1”, “2”, “3”].map(parseInt) 答案是多少?
關(guān)于事件,IE與火狐的事件機(jī)制有什么區(qū)別? 如何阻止冒泡?
什么是閉包(closure),為什么要用它?
javascript 代碼中的”use strict”;是什么意思 ? 使用它區(qū)別是什么?
如何判斷一個(gè)對(duì)象是否屬于某個(gè)類(lèi)?
new操作符具體干了什么呢?
用原生JavaScript的實(shí)現(xiàn)過(guò)什么功能嗎?
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()*(124))).toString(16) }) 能解釋一下這段代碼的意思嗎?
js延遲加載的方式有哪些?
Ajax 是什么? 如何創(chuàng)建一個(gè)Ajax?
同步和異步的區(qū)別?
如何解決跨域問(wèn)題?
頁(yè)面編碼和被請(qǐng)求的資源編碼如果不一致如何處理?
模塊化開(kāi)發(fā)怎么做?
AMD(Modules/Asynchronous-Definition)、CMD(Common Module Definition)規(guī)范區(qū)別?
requireJS的核心原理是什么?(如何動(dòng)態(tài)加載的?如何避免多次加載的?如何 緩存的?)
讓你自己設(shè)計(jì)實(shí)現(xiàn)一個(gè)requireJS,你會(huì)怎么做?
談一談你對(duì)ECMAScript6的了解?
ECMAScript6 怎么寫(xiě)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è)類(lèi)。怎么實(shí)例化這個(gè)類(lèi)
JavaScript中的作用域與變量聲明提升?
如何編寫(xiě)高性能的Javascript?
那些操作會(huì)造成內(nèi)存泄漏?
JQuery的源碼看過(guò)嗎?能不能簡(jiǎn)單概況一下它的實(shí)現(xiàn)原理?
jQuery.fn的init方法返回的this指的是什么對(duì)象?為什么要返回this?
jquery中如何將數(shù)組轉(zhuǎn)化為json字符串,然后再轉(zhuǎn)化回來(lái)?
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 是通過(guò)哪個(gè)方法和 Sizzle 選擇器結(jié)合的?(jQuery.fn.find()進(jìn)入Sizzle)
針對(duì) jQuery性能的優(yōu)化方法?
Jquery與jQuery UI有啥區(qū)別?
JQuery的源碼看過(guò)嗎?能不能簡(jiǎn)單說(shuō)一下它的實(shí)現(xiàn)原理?
jquery 中如何將數(shù)組轉(zhuǎn)化為json字符串,然后再轉(zhuǎn)化回來(lái)?
jQuery和Zepto的區(qū)別?各自的使用場(chǎng)景?
針對(duì) jQuery 的優(yōu)化方法?
Zepto的點(diǎn)透問(wèn)題如何解決?
jQueryUI如何自定義組件?
需求:實(shí)現(xiàn)一個(gè)頁(yè)面操作不會(huì)整頁(yè)刷新的網(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)畫(huà) ,如果目標(biāo)元素是被外部事件驅(qū)動(dòng), 當(dāng)鼠標(biāo)快速地連續(xù)觸發(fā)外部元素事件, 動(dòng)畫(huà)會(huì)滯后的反復(fù)執(zhí)行,該如何處理呢?
把 Script 標(biāo)簽 放在頁(yè)面的最底部的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么? 知道怎么用瀏覽器的各種工具來(lái)調(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)千位分隔符?(來(lái)源:前端農(nóng)民工,提示:正則+replace)
檢測(cè)瀏覽器版本版本有哪些方式?
我們給一個(gè)dom同時(shí)綁定兩個(gè)點(diǎn)擊事件,一個(gè)用捕獲,一個(gè)用冒泡,你來(lái)說(shuō)下會(huì)執(zhí)行幾次事件,然后會(huì)先執(zhí)行冒泡還是捕獲
其他問(wèn)題
原來(lái)公司工作流程是怎么樣的,如何與其他人協(xié)作的?如何夸部門(mén)合作的?
你遇到過(guò)比較難的技術(shù)問(wèn)題是?你是如何解決的?
設(shè)計(jì)模式 知道什么是singleton, factory, strategy, decrator么?
常使用的庫(kù)有哪些?常用的前端開(kāi)發(fā)工具?開(kāi)發(fā)過(guò)什么應(yīng)用或組件?
頁(yè)面重構(gòu)怎么操作?
列舉IE與其他瀏覽器不一樣的特性?
99%的網(wǎng)站都需要被重構(gòu)是那本書(shū)上寫(xiě)的?
什么叫優(yōu)雅降級(jí)和漸進(jìn)增強(qiáng)?
是否了解公鑰加密和私鑰加密。
WEB應(yīng)用從服務(wù)器主動(dòng)推送Data到客戶端有那些方式?
對(duì)Node的優(yōu)點(diǎn)和缺點(diǎn)提出了自己的看法?
你有用過(guò)哪些前端性能優(yōu)化的方法?
http狀態(tài)碼有那些?分別代表是什么意思?
一個(gè)頁(yè)面從輸入 URL 到頁(yè)面加載顯示完成,這個(gè)過(guò)程中都發(fā)生了什么?(流程說(shuō)的越詳細(xì)越好)
部分地區(qū)用戶反應(yīng)網(wǎng)站很卡,請(qǐng)問(wèn)有哪些可能性的原因,以及解決方法?
從打開(kāi)app到刷新出內(nèi)容,整個(gè)過(guò)程中都發(fā)生了什么,如果感覺(jué)慢,怎么定位問(wèn)題,怎么解決?
除了前端以外還了解什么其它技術(shù)么?你最最厲害的技能是什么?
你用的得心應(yīng)手用的熟練地編輯器開(kāi)發(fā)環(huán)境是什么樣子?
對(duì)前端界面工程師這個(gè)職位是怎么樣理解的?它的前景會(huì)怎么樣?
你怎么看待Web App 、hybrid App、Native App?
你移動(dòng)端前端開(kāi)發(fā)的理解?(和 Web 前端開(kāi)發(fā)的主要區(qū)別是什么?)
你對(duì)加班的看法?
平時(shí)如何管理你的項(xiàng)目?
說(shuō)說(shuō)最近最流行的一些東西吧?常去哪些網(wǎng)站?
如何設(shè)計(jì)突發(fā)大規(guī)模并發(fā)架構(gòu)?
說(shuō)說(shuō)最近最流行的一些東西吧?常去哪些網(wǎng)站?
是否了解開(kāi)源的工具 bower、npm、yeoman、grunt、gulp,一個(gè) npm 的包里的 package.json 具備的必要的字段都有哪些?(名稱(chēng)、版本號(hào),依賴(lài))
每個(gè)模塊的代碼結(jié)構(gòu)都應(yīng)該比較簡(jiǎn)單,且每個(gè)模塊之間的關(guān)系也應(yīng)該非常清晰,隨著功能和迭代次數(shù)越來(lái)越多,你會(huì)如何去保持這個(gè)狀態(tài)的?
Git知道branch, diff, merge么?
如何設(shè)計(jì)突發(fā)大規(guī)模并發(fā)架構(gòu)?
當(dāng)團(tuán)隊(duì)人手不足,把功能代碼寫(xiě)完已經(jīng)需要加班的情況下,你會(huì)做前端代碼的測(cè)試嗎?
說(shuō)說(shuō)最近最流行的一些東西吧?平時(shí)常去哪些網(wǎng)站?
知道什么是SEO并且怎么優(yōu)化么? 知道各種meta data的含義么?
移動(dòng)端(Android IOS)怎么做好用戶體驗(yàn)?
簡(jiǎn)單描述一下你做過(guò)的移動(dòng)APP項(xiàng)目研發(fā)流程?
你在現(xiàn)在的團(tuán)隊(duì)處于什么樣的角色,起到了什么明顯的作用?
你認(rèn)為怎樣才是全端工程師(Full Stack developer)?
介紹一個(gè)你最得意的作品吧?
你有自己的技術(shù)博客嗎,用了哪些技術(shù)?
對(duì)前端安全有什么看法?
是否了解Web注入攻擊,說(shuō)下原理,最常見(jiàn)的兩種攻擊(XSS 和 CSRF)了解到什么程度?
項(xiàng)目中遇到國(guó)哪些印象深刻的技術(shù)難題,具體是什么問(wèn)題,怎么解決?。
最近在學(xué)什么東西?
你的優(yōu)點(diǎn)是什么?缺點(diǎn)是什么?
如何管理前端團(tuán)隊(duì)?
最近在學(xué)什么?能談?wù)勀阄磥?lái)3,5年給自己的規(guī)劃嗎?
面試web前端的工作,會(huì)被問(wèn)到什么問(wèn)題
如果是個(gè)初級(jí)前端,那么就問(wèn)些基礎(chǔ)性的問(wèn)題,例如CSS中的選擇器、 HTML和XHTML的區(qū)別、JavaScript中的類(lèi)型轉(zhuǎn)換等,都是些簡(jiǎn)單的問(wèn)題,平時(shí)稍微注意一下就能輕松答出,我很少問(wèn)一些抽象的概念,例如閉包,知道怎么用就行了,不會(huì)強(qiáng)求面試者對(duì)這個(gè)概念進(jìn)行總結(jié)。
還有就是會(huì)問(wèn)些當(dāng)前公司所用到的技術(shù)棧里的問(wèn)題,例如有沒(méi)有用過(guò)自動(dòng)化構(gòu)建、React或VUE有沒(méi)有實(shí)際使用過(guò),都是一些操作性的問(wèn)題,不會(huì)問(wèn)太深的,例如React的原理啥的。
除了問(wèn)問(wèn)題之外,剩下的就是眼緣了,如果雙方對(duì)上眼了,至少技術(shù)那塊能談攏,剩下的薪資就不屬于我的所能把控了。
前端面試題-服務(wù)端渲染SSR
我最開(kāi)始接觸是在Vue的官網(wǎng)上,開(kāi)始是作為一個(gè)小節(jié)出現(xiàn),現(xiàn)在已經(jīng)是個(gè)專(zhuān)門(mén)的大章節(jié)來(lái)專(zhuān)門(mén)講Vue服務(wù)端渲染的內(nèi)容。
服務(wù)端渲染 簡(jiǎn)單來(lái)說(shuō)就是在服務(wù)器上把數(shù)據(jù)和模板拼接好以后發(fā)送給客戶端顯示。
回顧下前端的 歷史 ,最開(kāi)始的站點(diǎn)是簡(jiǎn)單的靜態(tài)網(wǎng)站。后端大哥把.html文件推送給用戶,用戶瀏覽器解析這些字符串進(jìn)行顯示。那個(gè)時(shí)候就是 服務(wù)端渲染 ??墒呛髞?lái)由于網(wǎng)站內(nèi)容越來(lái)越復(fù)雜、特效越來(lái)越炫酷,這種‘兼職’狀態(tài)已經(jīng)不能滿足需求,細(xì)分之下的前端出現(xiàn)了。
隨后為了方便的開(kāi)發(fā),開(kāi)始提倡 前后端分離,大家各做各的,彼此之間通過(guò)基于HTTP的各種API協(xié)作,變成了數(shù)據(jù)動(dòng)態(tài)生成的新一代站點(diǎn)。
再后來(lái)出現(xiàn)了Vue等三大MV*框架,網(wǎng)站做成了SPA應(yīng)用,解決了很多問(wèn)題的同時(shí)也帶來(lái)了新問(wèn)題,其中最突出的兩個(gè):難以SEO和首屏加載緩慢。
想要了解更多關(guān)于前端技術(shù)內(nèi)容歡迎關(guān)注尚硅谷教育!
前端安全相關(guān)面試題
前端JS高階面試題
前端設(shè)計(jì)模式-面試題
web前端渲染優(yōu)化
web前端之二叉搜索樹(shù)
史上最全前端vue面試題!推薦收藏
1.為什么會(huì)形成跨域?
不是一個(gè)源的文件操作另一個(gè)源的文件就會(huì)形成跨域。當(dāng)請(qǐng)求端的協(xié)議、域名、端口號(hào)和服務(wù)器的協(xié)議、域名、端口號(hào)有一個(gè)不一致就會(huì)發(fā)生跨域。
解決方法:安裝插件
Pip install django-cors-headers
2.vuex的工作流程?
① 在vue組件里面,通過(guò)dispatch來(lái)出發(fā)actions提交修改數(shù)據(jù)的操作。
② 然后再通過(guò)actions的commit來(lái)出發(fā)mutations來(lái)修改數(shù)據(jù)。
③ mutations接收到commit的請(qǐng)求,就會(huì)自動(dòng)通過(guò)Mutate來(lái)修改state(數(shù)據(jù)中心里面的數(shù)據(jù)狀態(tài))里面的數(shù)據(jù)。
④ 最后由store觸發(fā)每一個(gè)調(diào)用它的組件更新。
3.vuex是什么?怎么使用?
vuex是一個(gè)專(zhuān)為vue.js應(yīng)用程序開(kāi)發(fā)的狀態(tài)管理模式。使用:store,getters,mutations,actions,modules詳細(xì)使用寫(xiě)法請(qǐng)見(jiàn):
4.vuex中的數(shù)據(jù)在頁(yè)面刷新后數(shù)據(jù)消失怎么解決?
使用sessionStorage或localStorage存儲(chǔ)數(shù)據(jù);也可以引入vuex-persist插件
5.在vue中,如何阻止事件冒泡和默認(rèn)行為?
在綁定事件時(shí),在指令后邊加上修飾符.stop來(lái)阻止冒泡,.prevent來(lái)阻止默認(rèn)行為
6.深拷貝與淺拷貝?
假設(shè)B復(fù)制A,修改A的時(shí)候,看B是否變化:B變了是淺拷貝(修改堆內(nèi)存中的同一個(gè)值),沒(méi)變是深拷貝(修改堆內(nèi)存中不同的值)。淺拷貝只是增加了一個(gè)指針指向已存在的內(nèi)存地址,深拷貝是增加了一個(gè)指針并申請(qǐng)了一個(gè)新的內(nèi)存,使這個(gè)增加的指針指向這個(gè)新的內(nèi)存。深拷貝和淺拷貝最根本的區(qū)別在于是否真正獲取一個(gè)對(duì)象的復(fù)制實(shí)體,而不是引用。
7.vue的生命周期?
beforeCreate created beforeMount mounted beforeUpdate updated beforeDestroy destroyedactived deactived (keep-alive)組件是否激活調(diào)用
8. keep-alive: 組件緩存
router.js中:
meta: {keepAlive:true} // 需要被緩存
鉤子執(zhí)行順序:created - mounted - actived
include表示需要緩存的頁(yè)面;exclude表示不需要緩存的頁(yè)面。如果兩個(gè)同時(shí)設(shè)置,exclude優(yōu)先級(jí)更 改,則組件不會(huì)被緩存。
應(yīng)用場(chǎng)景: 用戶在某個(gè)列表頁(yè)面選擇篩選條件過(guò)濾出一份數(shù)據(jù)列表,由列表頁(yè)面進(jìn)入數(shù)據(jù)詳情頁(yè)面,再返回 該列表頁(yè),我們希望列表頁(yè)可以保留用戶的篩選狀態(tài)。
9.vue傳值方式?
props $emit() $on() $parent $children $listener $attr
10. $on 兄弟組件傳值
$emit 分發(fā)
$on 監(jiān)聽(tīng)
$off 取消監(jiān)聽(tīng)
$once 一次性監(jiān)聽(tīng)一個(gè)事件
在js文件中定義一個(gè)中央事件總線Bus,并暴露出來(lái)
具體的實(shí)現(xiàn)方式:
使用Bus的時(shí)候在接收Bus的組件的beforeDestroy函數(shù)中銷(xiāo)毀Bus,否則會(huì)一直疊加調(diào)用這個(gè)方法。
應(yīng)用場(chǎng)景:“退出登錄” - ①點(diǎn)擊退出登錄;②修改密碼后自動(dòng)退出登錄
11.組件跨級(jí)傳值
$attrs a-b-c
$listeners 監(jiān)聽(tīng)
12.vue事件修飾符有哪些?
.stop .prevent .self .once .passive .sync
13.箭頭函數(shù)中的this?
不具有this綁定,但函數(shù)體可以使用this,這個(gè)this指向的是箭頭函數(shù)當(dāng)前所處的詞法環(huán)境中的this對(duì)象。
15.為什么vue組件中data必須是一個(gè)函數(shù)?
如果不是函數(shù)的話,每個(gè)組件的data都是內(nèi)存的同一個(gè)地址,一個(gè)數(shù)據(jù)改變了其他也改變了,當(dāng)他是一個(gè)函數(shù)時(shí),每個(gè)組件實(shí)例都有自己的作用域,每個(gè)實(shí)例相互獨(dú)立,就不會(huì)互相影響。
16.v-if 和 v-show區(qū)別?
v-if 是對(duì)標(biāo)簽的創(chuàng)建與銷(xiāo)毀, v-show 則僅在初始化時(shí)加載一次,v-if 開(kāi)銷(xiāo)相對(duì)來(lái)說(shuō)比v-show 大;
v-if 是惰性的;v-show 做的僅是簡(jiǎn)單的css切換。
17.v-text 與 v-html區(qū)別?
v-text 用于普通文本,不能解析html;
v-html 反之。
18.v-for key的作用?
使用v-for更新渲染過(guò)的數(shù)據(jù),它默認(rèn)用“就地復(fù)用”策略。如果數(shù)據(jù)項(xiàng)的順序改變,vue將不是移動(dòng)DOM元素來(lái)匹配數(shù)據(jù)項(xiàng)的改變,而是簡(jiǎn)單地復(fù)用此處每個(gè)元素,并確保在特定索引下顯示已被渲染過(guò)的每個(gè)元素。key屬性類(lèi)型只能是string或number。
key的特殊屬性主要用在虛擬DOM算法,在新舊node對(duì)比時(shí)辨識(shí)VNods。如不使用key,vue會(huì)使用一種最大限度減少動(dòng)態(tài)元素并且盡可能的嘗試修復(fù)/再利用相同類(lèi)型元素的算法,它會(huì)基于key的變化重新排列元素順序。
19.Scss是什么?在vue-cli中安裝步驟?有哪幾大特性?
npm 下載loader (sass-loader,css-loader,node-sass),在webpack中配置extends屬性(加.scss拓展) Vscode中可在擴(kuò)展中下載;
特性:可以用變量,可以用混合器,可以嵌套等。
20.vue獲取dom?
ref
21.vue初始化頁(yè)面閃動(dòng)問(wèn)題?
webpack、vue-router
v-cloak css:[v-cloak]:display:none
22.什么是vue-router?
vue router 是官方路由管理器。
主要功能:路由嵌套,模塊化 基于組件路由配置,路由參數(shù)、查詢(xún)、通配符,細(xì)粒度導(dǎo)航控制,自定義的滾動(dòng)條行為等。
23.vue路由傳參,接收?
傳: this.$router.push({path:'', query(params):{}})
接:this.$router.query.xxx
24.防抖和節(jié)流?
節(jié)流是一定時(shí)間內(nèi)執(zhí)行一次函數(shù),多用在scroll事件上;
防抖是在一定時(shí)間內(nèi)執(zhí)行最后一次的函數(shù),多用在input輸入操作,表單提交等。
25.如何讓scss只在當(dāng)前組件中起作用?
2021上海中級(jí)前端面試常問(wèn)問(wèn)題整理
金九銀十的時(shí)間到了,又是適合跳槽的時(shí)間,我之前是在鄭州工作,然后九月來(lái)上海這邊,面了一周左右,找到了還算滿意的工作,現(xiàn)在整理一下面試中遇到的問(wèn)題,給要在上海找工作的小伙伴一個(gè)參考,也給自己下次換工作做一個(gè)參考,哈哈
我是主要做vue的還沒(méi)有學(xué)vue3所以面試中大多是vue2的問(wèn)題,但是上海挺多公司開(kāi)始轉(zhuǎn)vue3了,這個(gè)還是要抓緊學(xué)習(xí)
先把問(wèn)題記錄下來(lái),有時(shí)間會(huì)更新答案
在mvvm架構(gòu)下,View和Model之間并沒(méi)有直接的聯(lián)系,而是通過(guò)ViewModel進(jìn)行交互,Model 和 View 之間的交互是雙向的, 因此View 數(shù)據(jù)的變化會(huì)同步到Model中,而Model 數(shù)據(jù)的變化也會(huì)立即反應(yīng)到View 上。
ViewModel通過(guò)雙向數(shù)據(jù)綁定把View層和Model層連接起來(lái),而View和Model之間的同步工作完全是自動(dòng)的,無(wú)需人為干涉,因此開(kāi)發(fā)者只需要關(guān)注業(yè)務(wù)邏輯,不需要手動(dòng)操作DOM,不需要關(guān)注數(shù)據(jù)狀態(tài)的同步問(wèn)題,復(fù)雜的數(shù)據(jù)狀態(tài)維護(hù)完全由MVVM來(lái)統(tǒng)一管理
computed是vue的計(jì)算屬性,可以用于一些復(fù)雜的運(yùn)算,有緩存性,依賴(lài)的值不變的情況下不會(huì)重新計(jì)算
1.是計(jì)算值,
2.應(yīng)用:就是簡(jiǎn)化tempalte里面{{}}計(jì)算和處理props或$emit的傳值
3.具有緩存性,頁(yè)面重新渲染值不變化,計(jì)算屬性會(huì)立即返回之前的計(jì)算結(jié)果,而不必再次執(zhí)行函數(shù)
watch是監(jiān)聽(tīng)屬性,沒(méi)有緩存,deep(深度監(jiān)聽(tīng),用于數(shù)組,對(duì)象),handler,immediate(立即執(zhí)行)
1.是觀察的動(dòng)作,
2.應(yīng)用:監(jiān)聽(tīng)props,$emit或本組件的值執(zhí)行異步操作
3.無(wú)緩存性,頁(yè)面重新渲染時(shí)值不變化也會(huì)執(zhí)行
組件實(shí)例對(duì)象data必須為函數(shù),目的為了防止多個(gè)組件實(shí)例直接共用一個(gè)data,產(chǎn)生數(shù)據(jù)污染
在組件復(fù)用時(shí),data作為函數(shù),有自己的存儲(chǔ)空間,每次都能返回一個(gè)新的data,其中一個(gè)組件中data的值變化,不會(huì)影響其他組件中的data
pc:elementui,avue,Ant Design of Vue
移動(dòng):vantui,mint ui
不能,v-for優(yōu)先級(jí)比v-if高,放在一起使用的時(shí)候,v-if要在每個(gè)循環(huán)中創(chuàng)建銷(xiāo)毀dom,浪費(fèi)資源
onLoad(option)
上傳---提審---發(fā)布
wx.navigateToMiniProgram
可配置跳轉(zhuǎn)版本(開(kāi)發(fā)版,體驗(yàn)版,正式版)
配置合法域名,新建web-view頁(yè)面
wx-open-launch-weapp 小程序原始id
可參考
計(jì)算寬度不一致
ie:content+padding+border
標(biāo)準(zhǔn):content
box-sizing:content-box ( 標(biāo)準(zhǔn) )
box-sizing:border-box ( ie )
flex布局可以更好的適配移動(dòng)端
1.flex布局
2.不知道子元素寬高:position:absolute;top:50%;left50%; transform:translate(-50%,-50%)
3.已知子元素的寬高:position:absolute;top:50%;left50%;margin-left:寬的一半,margin-top:高的一半
1.flex布局,左側(cè)固定寬,右側(cè)flex:1
2.左側(cè)浮動(dòng),右側(cè)margin-left:左側(cè)的寬
3.左側(cè)定寬,右側(cè)絕對(duì)定位,left:左側(cè)的寬
4.左側(cè)絕對(duì)定位,右側(cè)margin-left:左側(cè)的寬
上下寬高固定,下用絕對(duì)定位定在底部,中間絕對(duì)定位,top:上高,bottom:下高;height:auto
相當(dāng)于一個(gè)完全封閉的盒子,元素布局不受外界影響
生成BFC的條件:float(除none)、overflow、
可以解決浮動(dòng)布局造成的父元素塌陷
解決外邊距重合的問(wèn)題
可以計(jì)算浮動(dòng)的高,
web前端開(kāi)發(fā)面試流程是怎樣的?
首先投簡(jiǎn)歷,等待面試通知。第一次面試填資料,做測(cè)試題;等一面通過(guò)之后接著二面,二面一般是技術(shù)面試,有些公司是通過(guò)之后直接進(jìn)行3面有些是改天再進(jìn)行3面,3面一般就是項(xiàng)目經(jīng)理或總經(jīng)理問(wèn)你一-些各種各樣的問(wèn)題,如果3面都過(guò)了,基本上就是面試成功了。但是不同公司的面試流程也不相同。web前端開(kāi)發(fā)推薦千鋒教育。
Web前端面試攻略:
1.簡(jiǎn)歷要寫(xiě)好
畢業(yè)生如果是不會(huì)寫(xiě)的話,首先要借鑒優(yōu)秀的簡(jiǎn)歷模板,一定不能雜亂無(wú)章。關(guān)于簡(jiǎn)歷模板可以尋找前端專(zhuān)用模板。除了排版,前端的簡(jiǎn)歷最好是有——工作經(jīng)驗(yàn)和工作項(xiàng)目。如果是實(shí)習(xí)生可以寫(xiě)上自己的學(xué)校經(jīng)歷,還有一些證書(shū),英語(yǔ)四六級(jí)證書(shū)、國(guó)家計(jì)算機(jī)二級(jí)證書(shū)、普通話證書(shū)等都可以在簡(jiǎn)歷上填寫(xiě),會(huì)是一個(gè)加分項(xiàng)。
2、選擇和了解好企業(yè)
在投遞之前需要自己去認(rèn)真的了解一下自己投遞的公司,不要被招聘app上的圖片和薪資所迷惑。要仔細(xì)考察公司對(duì)工作技能的要求、福利待遇等等,選擇自己合適的去投,或者是聽(tīng)從自己學(xué)習(xí)機(jī)構(gòu)的一些建議和推薦。
3、做好匯總
簡(jiǎn)歷上寫(xiě)過(guò)的技能點(diǎn),一定要認(rèn)真的牢記。還有就是自己做過(guò)的項(xiàng)目,一定要準(zhǔn)備好項(xiàng)目上的總結(jié),具體的牢記的問(wèn)題可以參考下面四點(diǎn)。項(xiàng)目:項(xiàng)目是什么樣的項(xiàng)目、采用的技術(shù)和技術(shù)擴(kuò)展、問(wèn)題和解決、經(jīng)驗(yàn)。
想要了解更多web前端開(kāi)發(fā)的相關(guān)信息,推薦咨詢(xún)千鋒教育。千鋒Java現(xiàn)已擁有成熟獨(dú)立的項(xiàng)目庫(kù),項(xiàng)目均1:1引進(jìn)大廠項(xiàng)目,授課采用 CREA 項(xiàng)目研發(fā)模型,即 Cooperation、Research、Exercise、Alliance,以項(xiàng)目促進(jìn)高質(zhì)量教學(xué)。多場(chǎng)景,多學(xué)科聯(lián)動(dòng)為學(xué)員的技能實(shí)戰(zhàn)提供高度還原的真實(shí)演練場(chǎng),充分賦能學(xué)員簡(jiǎn)歷價(jià)值,打造企業(yè)直聘班,得到廣大學(xué)員一致認(rèn)可。
關(guān)于web前端高級(jí)面試題2021和2021年web前端面試題的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
掃描二維碼推送至手機(jī)訪問(wèn)。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。