日本国产欧美大码A视频 _国产高颜值极品在线视频_色偷偷亚洲第一综合网_国产精品一二三社区视频_久久久青草视频

IT培訓(xùn)-高端面授IT培訓(xùn)機(jī)構(gòu)
云和教育:云和數(shù)據(jù)集團(tuán)高端IT職業(yè)教育品牌
  • 國家級(jí)
    全民數(shù)字素養(yǎng)與技能培訓(xùn)基地
  • 河南省
    第一批產(chǎn)教融合型企業(yè)建設(shè)培育單位
  • 鄭州市
    數(shù)字技能人才(碼農(nóng))培養(yǎng)評(píng)價(jià)聯(lián)盟

測試 | 幾道前端開發(fā)面試題,你會(huì)做嗎?

  • 發(fā)布時(shí)間:
    2020-12-16
  • 版權(quán)所有:
    云和教育
  • 分享:
最近總結(jié)了一些前端面試一面題目,比較偏基礎(chǔ),大部分題目都應(yīng)該會(huì),即使不會(huì)也似曾相識(shí),都能說上幾句。但為什么有些人能過有些人過不了,這就是考查你的基礎(chǔ)知識(shí)是否全面且扎實(shí)。會(huì)是應(yīng)該的,但你的答案一定要詳細(xì)并且有些題要說出多種答案,這就需要各位平常的積累了。
css

calc, support, media各自的含義及用法?

@support主要是用于檢測瀏覽器是否支持CSS的某個(gè)屬性,其實(shí)就是條件判斷,如果支持某個(gè)屬性,你可以寫一套樣式,如果不支持某個(gè)屬性,你也可以提供另外一套樣式作為替補(bǔ)。
calc() 函數(shù)用于動(dòng)態(tài)計(jì)算長度值。calc()函數(shù)支持 “+”, “-“, “*”, “/” 運(yùn)算;
@media 查詢,你可以針對(duì)不同的媒體類型定義不同的樣式。

css水平、垂直居中的寫法,請(qǐng)至少寫出4種?

這題考查的是css的基礎(chǔ)知識(shí)是否全面,所以平時(shí)一定要注意多積累
水平居中
  • 行內(nèi)元素:?text-align: center
  • 塊級(jí)元素:?margin: 0 auto
  • position:absolute +left:50%+ transform:translateX(-50%)
  • display:flex + justify-content: center
垂直居中
  • 設(shè)置line-height 等于height
  • position:absolute +top:50%+ transform:translateY(-50%)
  • display:flex + align-items: center
  • display:table+display:table-cell + vertical-align: middle;

1rem、1em、1vh、1px各自代表的含義?

rem
rem是全部的長度都相對(duì)于根元素<html>元素。通常做法是給html元素設(shè)置一個(gè)字體大小,然后其他元素的長度單位就為rem。
em
  • 子元素字體大小的em是相對(duì)于父元素字體大小
  • 元素的width/height/padding/margin用em的話是相對(duì)于該元素的font-size
vw/vh
全稱是 Viewport Width 和 Viewport Height,視窗的寬度和高度,相當(dāng)于 屏幕寬度和高度的 1%,不過,處理寬度的時(shí)候%單位更合適,處理高度的 話 vh 單位更好。
px
px像素(Pixel)。相對(duì)長度單位。像素px是相對(duì)于顯示器屏幕分辨率而言的。
一般電腦的分辨率有{1920*1024}等不同的分辨率
1920*1024 前者是屏幕寬度總共有1920個(gè)像素,后者則是高度為1024個(gè)像素

畫一條0.5px的直線?

考查的是css3的transform
?

height: 1px;transform: scale(0.5);

說一下盒模型?

盒模型是css中重要的基礎(chǔ)知識(shí),也是必考的基礎(chǔ)知識(shí)
盒模型的組成,由里向外content,padding,border,margin.
在IE盒子模型中,width表示content+padding+border這三個(gè)部分的寬度
在標(biāo)準(zhǔn)的盒子模型中,width指content部分的寬度
box-sizing的使用
?box-sizing: content-box 是W3C盒子模型
box-sizing: border-box 是IE盒子模型
box-sizing的默認(rèn)屬性是content-box

畫一個(gè)三角形?

這屬于簡單的css考查,平時(shí)在用組件庫的同時(shí),也別忘了原生的css

清除浮動(dòng)的幾種方式,及原理?

清除浮動(dòng)簡單,但這題要引出的是BFC,BFC也是必考的基礎(chǔ)知識(shí)點(diǎn)
  • ::after / <br> / clear: both
  • 創(chuàng)建父級(jí)?BFC(overflow:hidden)
  • 父級(jí)設(shè)置高度
BFC (塊級(jí)格式化上下文,是一個(gè)獨(dú)立的渲染區(qū)域,讓處于?BFC?內(nèi)部的元素與外部的元素相互隔離,使內(nèi)外元素的定位不會(huì)相互影響。
觸發(fā)條件:
  • 根元素
  • position: absolute/fixed
  • display: inline-block / table
  • float?元素
  • ovevflow !== visible
規(guī)則:
  • 屬于同一個(gè)?BFC?的兩個(gè)相鄰?Box?垂直排列
  • 屬于同一個(gè)?BFC?的兩個(gè)相鄰?Box?的?margin?會(huì)發(fā)生重疊
  • BFC?的區(qū)域不會(huì)與?float?的元素區(qū)域重疊
  • 計(jì)算?BFC?的高度時(shí),浮動(dòng)子元素也參與計(jì)算
  • 文字層不會(huì)被浮動(dòng)層覆蓋,環(huán)繞于周圍

HTML

說一下<label>標(biāo)簽的用法

label標(biāo)簽主要是方便鼠標(biāo)點(diǎn)擊使用,擴(kuò)大可點(diǎn)擊的范圍,增強(qiáng)用戶操作體驗(yàn)

遍歷A節(jié)點(diǎn)的父節(jié)點(diǎn)下的所有子節(jié)點(diǎn)

這題考查原生的js操作dom,屬于非常簡單的基礎(chǔ)題,但長時(shí)間使用mvvm框架,可能會(huì)忘記
?

<script> var b=document.getElementById("a").parentNode.children; console.log(b)</script>

JS

用js遞歸的方式寫1到100求和?

遞歸我們經(jīng)常用到,vue在實(shí)現(xiàn)雙向綁定進(jìn)行數(shù)據(jù)檢驗(yàn)的時(shí)候用的也是遞歸,但要我們面試的時(shí)候手寫一個(gè)遞歸,如果對(duì)遞歸的概念理解不透徹,可能還是會(huì)有一些問題。

頁面渲染html的過程?

不需要死記硬背,理解整個(gè)過程即可
瀏覽器渲染頁面的一般過程:
1.瀏覽器解析html源碼,然后創(chuàng)建一個(gè) DOM樹。并行請(qǐng)求 css/image/js在DOM樹中,每一個(gè)HTML標(biāo)簽都有一個(gè)對(duì)應(yīng)的節(jié)點(diǎn),并且每一個(gè)文本也都會(huì)有一個(gè)對(duì)應(yīng)的文本節(jié)點(diǎn)。DOM樹的根節(jié)點(diǎn)就是 documentElement,對(duì)應(yīng)的是html標(biāo)簽。
2.瀏覽器解析CSS代碼,計(jì)算出最終的樣式數(shù)據(jù)。構(gòu)建CSSOM樹。對(duì)CSS代碼中非法的語法它會(huì)直接忽略掉。解析CSS的時(shí)候會(huì)按照如下順序來定義優(yōu)先級(jí):瀏覽器默認(rèn)設(shè)置 < 用戶設(shè)置 < 外鏈樣式 < 內(nèi)聯(lián)樣式 < html中的style。
3.DOM Tree + CSSOM –> 渲染樹(rendering tree)。渲染樹和DOM樹有點(diǎn)像,但是是有區(qū)別的。
DOM樹完全和html標(biāo)簽一一對(duì)應(yīng),但是渲染樹會(huì)忽略掉不需要渲染的元素,比如head、display:none的元素等。而且一大段文本中的每一個(gè)行在渲染樹中都是獨(dú)立的一個(gè)節(jié)點(diǎn)。渲染樹中的每一個(gè)節(jié)點(diǎn)都存儲(chǔ)有對(duì)應(yīng)的css屬性。
4.一旦渲染樹創(chuàng)建好了,瀏覽器就可以根據(jù)渲染樹直接把頁面繪制到屏幕上。
以上四個(gè)步驟并不是一次性順序完成的。如果DOM或者CSSOM被修改,以上過程會(huì)被重復(fù)執(zhí)行。實(shí)際上,CSS和JavaScript往往會(huì)多次修改DOM或者CSSOM。

說一下CORS?

CORS是一種新標(biāo)準(zhǔn),支持同源通信,也支持跨域通信。fetch是實(shí)現(xiàn)CORS通信的

如何中斷ajax請(qǐng)求?

一種是設(shè)置超時(shí)時(shí)間讓ajax自動(dòng)斷開,另一種是手動(dòng)停止ajax請(qǐng)求,其核心是調(diào)用XML對(duì)象的abort方法,ajax.abort()

說一下事件代理?

事件委托是指將事件綁定到目標(biāo)元素的父元素上,利用冒泡機(jī)制觸發(fā)該事件
target、currentTarget的區(qū)別?
currentTarget當(dāng)前所綁定事件的元素
target當(dāng)前被點(diǎn)擊的元素

說一下宏任務(wù)和微任務(wù)?

  1. 宏任務(wù):當(dāng)前調(diào)用棧中執(zhí)行的任務(wù)稱為宏任務(wù)。(主代碼快,定時(shí)器等等)。
  2. 微任務(wù):當(dāng)前(此次事件循環(huán)中)宏任務(wù)執(zhí)行完,在下一個(gè)宏任務(wù)開始之前需要執(zhí)行的任務(wù)為微任務(wù)。(可以理解為回調(diào)事件,promise.then,proness.nextTick等等)。
  3. 宏任務(wù)中的事件放在callback queue中,由事件觸發(fā)線程維護(hù);微任務(wù)的事件放在微任務(wù)隊(duì)列中,由js引擎線程維護(hù)。

說一下繼承的幾種方式及優(yōu)缺點(diǎn)?

說比較經(jīng)典的幾種繼承方式并比較優(yōu)缺點(diǎn)就可以了
  1. 借用構(gòu)造函數(shù)繼承,使用call或apply方法,將父對(duì)象的構(gòu)造函數(shù)綁定在子對(duì)象上
  2. 原型繼承,將子對(duì)象的prototype指向父對(duì)象的一個(gè)實(shí)例
  3. 組合繼承
原型鏈繼承的缺點(diǎn)
  • 字面量重寫原型會(huì)中斷關(guān)系,使用引用類型的原型,并且子類型還無法給超類型傳遞參數(shù)。
借用構(gòu)造函數(shù)(類式繼承)
  • 借用構(gòu)造函數(shù)雖然解決了剛才兩種問題,但沒有原型,則復(fù)用無從談起。
組合式繼承
  • 組合式繼承是比較常用的一種繼承方法,其背后的思路是使用原型鏈實(shí)現(xiàn)對(duì)原型屬性和方法的繼承,而通過借用構(gòu)造函數(shù)來實(shí)現(xiàn)對(duì)實(shí)例屬性的繼承。這樣,既通過在原型上定義方法實(shí)現(xiàn)了函數(shù)復(fù)用,又保證每個(gè)實(shí)例都有它自己的屬性。

說一下閉包?

閉包的實(shí)質(zhì)是因?yàn)楹瘮?shù)嵌套而形成的作用域鏈
閉包的定義即:函數(shù)?A?內(nèi)部有一個(gè)函數(shù)?B,函數(shù)?B?可以訪問到函數(shù)?A?中的變量,那么函數(shù)?B?就是閉包

export和export default的區(qū)別?

使用上的不同
說一下自己常用的es6的功能?
此題是一道開放題,可以自由回答。但要注意像let這種簡單的用法就別說了,說一些經(jīng)常用到并有一定高度的新功能
像module、class、promise等,盡量講的詳細(xì)一點(diǎn)。

什么是會(huì)話cookie,什么是持久cookie?

cookie是服務(wù)器返回的,指定了expire time(有效期)的是持久cookie,沒有指定的是會(huì)話cookie

數(shù)組去重?

此題看著簡單,但要想面試官給你高分還是有難度的。至少也要寫出幾種方法
js
es6

get、post的區(qū)別

此題比較簡單,但一定要回答的全面
1.get傳參方式是通過地址欄URL傳遞,是可以直接看到get傳遞的參數(shù),post傳參方式參數(shù)URL不可見,get把請(qǐng)求的數(shù)據(jù)在URL后通過?連接,通過&進(jìn)行參數(shù)分割。psot將參數(shù)存放在HTTP的包體內(nèi)
2.get傳遞數(shù)據(jù)是通過URL進(jìn)行傳遞,對(duì)傳遞的數(shù)據(jù)長度是受到URL大小的限制,URL最大長度是2048個(gè)字符。post沒有長度限制
3.get后退不會(huì)有影響,post后退會(huì)重新進(jìn)行提交
4.get請(qǐng)求可以被緩存,post不可以被緩存
5.get請(qǐng)求只URL編碼,post支持多種編碼方式
6.get請(qǐng)求的記錄會(huì)留在歷史記錄中,post請(qǐng)求不會(huì)留在歷史記錄
7.get只支持ASCII字符,post沒有字符類型限制

你所知道的http的響應(yīng)碼及含義?

此題有過開發(fā)經(jīng)驗(yàn)的都知道幾個(gè),但還是那句話,一定要回答的詳細(xì)且全面。
1xx(臨時(shí)響應(yīng))
100: 請(qǐng)求者應(yīng)當(dāng)繼續(xù)提出請(qǐng)求。
101(切換協(xié)議) 請(qǐng)求者已要求服務(wù)器切換協(xié)議,服務(wù)器已確認(rèn)并準(zhǔn)備進(jìn)行切換。
2xx(成功)
200:正確的請(qǐng)求返回正確的結(jié)果
201:表示資源被正確的創(chuàng)建。比如說,我們 POST 用戶名、密碼正確創(chuàng)建了一個(gè)用戶就可以返回 201。
202:請(qǐng)求是正確的,但是結(jié)果正在處理中,這時(shí)候客戶端可以通過輪詢等機(jī)制繼續(xù)請(qǐng)求。
3xx(已重定向)
300:請(qǐng)求成功,但結(jié)果有多種選擇。
301:請(qǐng)求成功,但是資源被永久轉(zhuǎn)移。
303:使用 GET 來訪問新的地址來獲取資源。
304:請(qǐng)求的資源并沒有被修改過
4xx(請(qǐng)求錯(cuò)誤)
400:請(qǐng)求出現(xiàn)錯(cuò)誤,比如請(qǐng)求頭不對(duì)等。
401:沒有提供認(rèn)證信息。請(qǐng)求的時(shí)候沒有帶上 Token 等。
402:為以后需要所保留的狀態(tài)碼。
403:請(qǐng)求的資源不允許訪問。就是說沒有權(quán)限。
404:請(qǐng)求的內(nèi)容不存在。
5xx(服務(wù)器錯(cuò)誤)
500:服務(wù)器錯(cuò)誤。
501:請(qǐng)求還沒有被實(shí)現(xiàn)。

云和數(shù)據(jù)HTML5全棧精英班,經(jīng)過多年的技術(shù)迭代和項(xiàng)目革新,逐步發(fā)展成為集網(wǎng)站、手機(jī)應(yīng)用、小程序、快應(yīng)用、桌面應(yīng)用、后臺(tái)開發(fā)等多領(lǐng)域開發(fā)課程,新增Egg、TypeScript、Vue、React、HybridAPP等時(shí)下最流行的新技術(shù),結(jié)合企業(yè)實(shí)際用人需求,只為培養(yǎng)更多高端IT技術(shù)人才。
?