前端基礎(chǔ)

1、http和https 待定

說一下http和https_前端校招面試題目合集_??途W(wǎng) (nowcoder.com)

2、從發(fā)送請求到頁面展現(xiàn),都經(jīng)過了哪些

3、TCP和UDP的區(qū)別 ??!待定

參考回答:
(1)TCP是面向連接的,udp是無連接的即發(fā)送數(shù)據(jù)前不需要先建立鏈接。
(2)TCP提供可靠的服務(wù)。也就是說,通過TCP連接傳送的數(shù)據(jù),無差錯,不丟失,不重復,且按序到達;UDP盡最大努力交付,即不保證可靠交付。 并且因為tcp可靠,面向連接,不會丟失數(shù)據(jù)因此適合大數(shù)據(jù)量的交換。
(3)TCP是面向字節(jié)流,UDP面向報文,并且網(wǎng)絡(luò)出現(xiàn)擁塞不會使得發(fā)送速率降低(因此會出現(xiàn)丟包,對實時的應(yīng)用比如IP電話和視頻會議等)。
(4)TCP只能是1對1的,UDP支持1對1,1對多。
(5)TCP的首部較大為20字節(jié),而UDP只有8字節(jié)。
(6)TCP是面向連接的可靠性傳輸,而UDP是不可靠的。

4、WebSocket的實現(xiàn)和應(yīng)用 待定,需要深入

5、一個圖片url訪問后直接下載怎樣實現(xiàn)?

參考回答:

請求的返回頭里面,用于瀏覽器解析的重要參數(shù)就是OSS的API文檔里面的返回http頭,決定用戶下載行為的參數(shù)。
下載的情況下:

  1. x-oss-object-type:Normal
  2. x-oss-request-id:598D5ED34F29D01FE2925F41
  3. x-oss-storage-class:Standard

6、幾個很實用的BOM屬性對象方法?

幾個很實用的BOM屬性對象方法?前端校招面試題目合集??途W(wǎng) (nowcoder.com)

7、HTML5 drag

參考回答:
dragstart:事件主體是被拖放元素,在開始拖放被拖放元素時觸發(fā),。
darg:事件主體是被拖放元素,在正在拖放被拖放元素時觸發(fā)。
dragenter:事件主體是目標元素,在被拖放元素進入某元素時觸發(fā)。
dragover:事件主體是目標元素,在被拖放在某元素內(nèi)移動時觸發(fā)。
dragleave:事件主體是目標元素,在被拖放元素移出目標元素是觸發(fā)。
drop:事件主體是目標元素,在目標元素完全接受被拖放元素時觸發(fā)。
dragend:事件主體是被拖放元素,在整個拖放操作結(jié)束時觸發(fā)

8、說一下http2.0和 htttp3.0 (這個可能不對,需要查證)

說一下http2.0_前端校招面試題目合集_??途W(wǎng) (nowcoder.com)

9、fetch發(fā)送2次請求的原因

參考回答:
fetch發(fā)送post請求的時候,總是發(fā)送2次,第一次狀態(tài)碼是204,第二次才成功?
原因很簡單,因為你用fetch的post請求的時候,導致fetch 第一次發(fā)送了一個Options請求,詢問服務(wù)器是否支持修改的請求頭,如果服務(wù)器支持,則在第二次中發(fā)送真正的請求。

10、Cookie、sessionStorage、localStorage的區(qū)別

應(yīng)該已經(jīng)謝過了

11、說一下web worker

參考回答:

在HTML頁面中,如果在執(zhí)行腳本時,頁面的狀態(tài)是不可相應(yīng)的,直到腳本執(zhí)行完成后,頁面才變成可相應(yīng)。web worker是運行在后臺的js,獨立于其他腳本,不會影響頁面你的性能。并且通過postMessage將結(jié)果回傳到主線程。這樣在進行復雜操作的時候,就不會阻塞主線程了。
如何創(chuàng)建web worker:
檢測瀏覽器對于web worker的支持性
創(chuàng)建web worker文件(js,回傳函數(shù)等)
創(chuàng)建web worker對象

12、HTML5標簽語義化的好處

好像也寫過了

13、iframe是什么?有什么缺點?

參考回答:
定義:iframe元素會創(chuàng)建包含另一個文檔的內(nèi)聯(lián)框架
提示:可以將提示文字放在<iframe></iframe>之間,來提示某些不支持iframe的瀏覽器
缺點:
會阻塞主頁面的onload事件
搜索引擎無法解讀這種頁面,不利于SEO
iframe和主頁面共享連接池,而瀏覽器對相同區(qū)域有限制所以會影響性能。

14、你了解的網(wǎng)絡(luò)安全都有哪些?如何抵御(自己找)

XSS。等

15、cookie和session的區(qū)別 (自己查)

16、講講viewport和移動端布局

響應(yīng)式布局的常用解決方案對比(媒體查詢、百分比、rem和vw/vh)

17、http常用請求頭 (背誦)

http常用請求頭前端校招面試題目合集??途W(wǎng) (nowcoder.com)

18、強緩存和協(xié)商緩存都是什么 (自己查)

參考:強緩存、協(xié)商緩存什么時候用哪個前端校招面試題目合集牛客網(wǎng) (nowcoder.com)

19、get和post的區(qū)別

get參數(shù)通過url傳遞,post放在request body中。
get請求在url中傳遞的參數(shù)是有長度限制的,而post沒有。
get比post更不安全,因為參數(shù)直接暴露在url中,所以不能用來傳遞敏感信息。
get請求只能進行url編碼,而post支持多種編碼方式
get請求會瀏覽器主動cache,而post支持多種編碼方式。
get請求參數(shù)會被完整保留在瀏覽歷史記錄里,而post中的參數(shù)不會被保留。
GET和POST本質(zhì)上就是TCP鏈接,并無差別。但是由于HTTP的規(guī)定和瀏覽器/服務(wù)器的限制,導致他們在應(yīng)用過程中體現(xiàn)出一些不同。
GET產(chǎn)生一個TCP數(shù)據(jù)包;POST產(chǎn)生兩個TCP數(shù)據(jù)包。

20、在地址欄里輸入一個URL,到這個頁面呈現(xiàn)出來,中間會發(fā)生什么?

(直接看公眾號)

21、畫一條0.5px的線 (自己搜)為什么這個會是一個問題

22、transition和animation的區(qū)別

Animation和transition大部分屬性是相同的,他們都是隨時間改變元素的屬性值,他們的主要區(qū)別是transition需要觸發(fā)一個事件才能改變屬性,而animation不需要觸發(fā)任何事件的情況下才會隨時間改變屬性值,并且transition為2幀,從from .... to,而animation可以一幀一幀的。

23、flex布局 (全背)

24、BFC是什么

25、垂直居中的方法,水平居中的方法。(自己搜,經(jīng)典題目)

垂直居中的方法前端校招面試題目合集牛客網(wǎng) (nowcoder.com)

26、 css動畫和js動畫有什么區(qū)別

渲染線程分為main thread和compositor thread,如果css動畫只改變transform和opacity,這時整個CSS動畫得以在compositor trhead完成(而js動畫則會在main thread執(zhí)行,然后出發(fā)compositor thread進行下一步操作),特別注意的是如果改變transform和opacity是不會layout或者paint的。
區(qū)別:
功能涵蓋面,js比css大
實現(xiàn)/重構(gòu)難度不一,CSS3比js更加簡單,性能跳優(yōu)方向固定
對幀速表現(xiàn)不好的低版本瀏覽器,css3可以做到自然降級
css動畫有天然事件支持
css3有兼容性問題

27、文本溢出省略號(自己查)

28、position屬性

fixed \ relative \ absolute \ sticky \ static \ inherit

29、CSS選擇器,優(yōu)先級

30、三欄布局的實現(xiàn)方式,盡可能多寫,浮動布局時,三個div的生成順序有沒有影響

三欄布局的實現(xiàn)方式,盡可能多寫,浮動布局時,三個div的生成順序有沒有影響前端校招面試題目合集??途W(wǎng) (nowcoder.com)

31、用css實現(xiàn)一個硬幣旋轉(zhuǎn)的效果

用css實現(xiàn)一個硬幣旋轉(zhuǎn)的效果前端校招面試題目合集??途W(wǎng) (nowcoder.com)

32、了解重繪和重排嗎,知道怎么去減少重繪和重排嗎,讓文檔脫離文檔流有哪些方法

DOM的變化影響到了預算內(nèi)宿的幾何屬性比如寬高,瀏覽器重新計算元素的幾何屬性,其他元素的幾何屬性也會受到影響,瀏覽器需要重新構(gòu)造渲染書,這個過程稱之為重排,瀏覽器將受到影響的部分重新繪制在屏幕上 的過程稱為重繪,引起重排重繪的原因有:
添加或者刪除可見的DOM元素,

元素尺寸位置的改變

瀏覽器頁面初始化,

瀏覽器窗口大小發(fā)生改變,重排一定導致重繪,重繪不一定導致重排,

減少重繪重排的方法有:

不在布局信息改變時做DOM查詢,

使用csstext,className一次性改變屬性

使用fragment

對于多次重排的元素,比如說動畫。使用絕對定位脫離文檔流,使其不影響其他元素

33、CSS畫基礎(chǔ)形狀,正方形,圓形,橢圓等等

34、前端事件流

參考回答:

HTML中與javascript交互是通過事件驅(qū)動來實現(xiàn)的,例如鼠標點擊事件onclick、頁面的滾動事件onscroll等等,可以向文檔或者文檔中的元素添加事件偵聽器來預訂事件。想要知道這些事件是在什么時候進行調(diào)用的,就需要了解一下“事件流”的概念。
什么是事件流:事件流描述的是從頁面中接收事件的順序,DOM2級事件流包括下面幾個階段。
事件捕獲階段
處于目標階段
事件冒泡階段
addEventListener:addEventListener 是DOM2 級事件新增的指定事件處理程序的操作,這個方法接收3個參數(shù):要處理的事件名、作為事件處理程序的函數(shù)和一個布爾值。最后這個布爾值參數(shù)如果是true,表示在捕獲階段調(diào)用事件處理程序;如果是false,表示在冒泡階段調(diào)用事件處理程序。
IE只支持事件冒泡。

35、說一下事件委托

事件委托指的是,不在事件的發(fā)生地(直接dom)上設(shè)置監(jiān)聽函數(shù),而是在其父元素上設(shè)置監(jiān)聽函數(shù),通過事件冒泡,父元素可以監(jiān)聽到子元素上事件的觸發(fā),通過判斷事件發(fā)生元素DOM的類型,來做出不同的響應(yīng)。
舉例:最經(jīng)典的就是ul和li標簽的事件監(jiān)聽,比如我們在添加事件時候,采用事件委托機制,不會在li標簽上直接添加,而是在ul父元素上添加。

好處:比較合適動態(tài)元素的綁定,新添加的子元素也會有監(jiān)聽函數(shù),也可以有事件觸發(fā)機制。

36、說一下圖片的懶加載和預加載

參考回答:

預加載:提前加載圖片,當用戶需要查看時可直接從本地緩存中渲染。
懶加載:懶加載的主要目的是作為服務(wù)器前端的優(yōu)化,減少請求數(shù)或延遲請求數(shù)。

兩種技術(shù)的本質(zhì):兩者的行為是相反的,一個是提前加載,一個是遲緩甚至不加載。
懶加載對服務(wù)器前端有一定的緩解壓力作用,預加載則會增加服務(wù)器前端壓力。

37、bind,apply,call的區(qū)別

38、手寫bind,apply,call

39、異步加載js的方法

參考回答:

defer:只支持IE如果您的腳本不會改變文檔的內(nèi)容,可將 defer 屬性加入到<script>標簽中,以便加快處理文檔的速度。因為瀏覽器知道它將能夠安全地讀取文檔的剩余部分而不用執(zhí)行腳本,它將推遲對腳本的解釋,直到文檔已經(jīng)顯示給用戶為止。
async,HTML5屬性僅適用于外部腳本,并且如果在IE中,同時存在defer和async,那么defer的優(yōu)先級比較高,腳本將在頁面完成時執(zhí)行。
創(chuàng)建script標簽,插入到DOM中

40、Ajax解決瀏覽器緩存問題 (待查)

Ajax解決瀏覽器緩存問題前端校招面試題目合集??途W(wǎng) (nowcoder.com)

41、js的防抖節(jié)流

http://www.cnblogs.com/coco1s/p/5499469.html

42、前端模塊化。commonjs\amd\cmd的區(qū)別。ESM是什么

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容