位元組跳動前端面試經歷及總結

2021-09-03 02:56:02 字數 3392 閱讀 1050

小技巧總結

面試前做出的準備

我在面試前準備以下幾點東西,似乎都解決了面試的部分問題

快要面試時做出的準備

快要面試了,第一次面試,有些緊張,但還是像平常考試一樣,將總結下來的面試題目總結、前端遇到問題的總結又看了一遍,把自己做好的自我介紹熟悉的幾遍,給自己親近的朋友發條訊息獲得她的祝福,又站在電腦桌前活動了一下身子,頭腦頓時清醒利索了許多。

面試前奏

面試高潮

來了來了,開始問技術的問題了。

css3新增了一些屬性,像flex,這是css3中很重要的改變,所以除了flex以外的垂直水平居中的技巧都是屬於css2的。

- css2的水平居中技巧

將元素display為行內元素,再text-align:center;即可

或者將塊級元素定義乙個寬度,再margin: 0 auto;即可

- css3的水平居中技巧

將元素display設為flex,再通過justify-content: center; 實現居中。

- css2的垂直居中技巧

單行內容的垂直居中可以通過設定相同height值和line-height值來實現。

多行內容的垂直居中且高度可變可以通過設定上下相同的padding值來實現。

行級盒子:小圖示和標題對齊設定vertical-align: middle。

絕對定位:top:50%; left:50%;的方法,需要已知塊級的寬高

- css3的垂直居中技巧

將元素display設為flex,再通過align-items:center;來實現。

tcp:面向連線、傳輸可靠(保證資料正確性,保證資料順序)、用於傳輸大量資料(流模式)、速度慢,建立連線需要開銷較多(時間,系統資源)

udp:面向非連線、傳輸不可靠、用於傳輸少量資料(資料報模式)、速度快

tcp和udp協議的一些應用例子:

原文:

網際層協議:ip協議、icmp協議、arp協議、rarp協議

傳輸層協議:tcp協議、udp協議

應用層協議:ftp、telnet、smtp、http、rip、nfs、dns

https即加密的http,https並不是乙個新協議,而是http+ssl(tls)。原本http先和tcp(假定傳輸層是tcp協議)直接通訊,而加了ssl後,就變成http先和ssl通訊,再由ssl和tcp通訊,相當於ssl被嵌在了http和tcp之間
2xx系列:代表請求已成功被伺服器接收、理解、並接受。

200狀態碼:表示請求已成功,請求所希望的響應頭或資料體將隨此響應返回

201狀態碼:表示請求成功並且伺服器建立了新的資源,且其 uri 已經隨location 頭資訊返回。

301狀態碼:被請求的資源已永久移動到新位置。伺服器返回此響應(對 get 或 head 請求的響應)時,會自動將請求者轉到新位置。

302狀態碼:請求的資源臨時從不同的uri響應請求,但請求者應繼續使用原有位置來進行以後的請求。

304狀態碼:自從上次請求後,請求的網頁未修改過。伺服器返回此響應時,不會返回網頁內容。

4xx系列:表示請求錯誤。代表了客戶端看起來可能發生了錯誤,妨礙了伺服器的處理。

401狀態碼:請求要求身份驗證。 對於需要登入的網頁,伺服器可能返回此響應。

403狀態碼:伺服器已經理解請求,但是拒絕執行它。與401響應不同的是,身份驗證並不能提供任何幫助,而且這個請求也不應該被重複提交。

404狀態碼:請求失敗,請求所希望得到的資源未被在伺服器上發現。

5xx系列:代表了伺服器在處理請求的過程中有錯誤或者異常狀態發生,也有可能是伺服器意識到以當前的軟硬體資源無法完成對請求的處理。

500狀態碼:伺服器遇到了乙個未曾預料的狀況,導致了它無法完成對請求的處理。

503狀態碼:由於臨時的伺服器維護或者過載,伺服器當前無法處理請求。

// 輸出全為10

for(var i=0;i<10;i++),50);

}// 輸出相應的輸出

for(var i=0;i<10;i++),50);

})(i);

}

隱性轉換為: 1 + '1' = '11'

顯性轉換

number("24 cccc");//結果:nan

parseint("24 cccc");//結果:24

備註:number的顯性轉換比較嚴格,若無法強轉則直接報錯

面試官後引伸了兩個問題

1 + -'1' + 1 等於什麼

等於 0 ,'1'前面的負號把其數位化,變為-1,則後值為1

'a' - 'b' 等於什麼

nan

1. 通過jsonp跨域

jsonp在頁面上引入不同域上的js指令碼檔案實現請求不同域上的資料

(1) 通過script標籤引入乙個js檔案

(2) js檔案載入成功後會執行我們在url引數中指定的函式,並且會把我們需要的json資料作為引數傳入

注:需要伺服器端的頁面進行相應的配合

2. 通過修改document.domain來跨子域

3. 使用window.name來進行跨域

window物件有個name屬性,該屬性有個特徵:即在乙個視窗(window)的生命週期內,視窗載入的所有的頁面都是共享乙個window.name的,每個頁面對window.name都有讀寫的許可權,window.name是持久存在乙個視窗載入過的所有頁面中的,並不會因新頁面的載入而進行重置。

實現思路:先判斷該變數是否為number型別,以此來縮小範圍,再判斷該變數除以1後是否與原值全等,若全等則返回true,若不全等則返回false
left join 關鍵字會從左表那裡返回所有的行,即使在右表中沒有匹配的行

right join 關鍵字會右表那裡返回所有的行,即使在左表中沒有匹配的行

在表中存在至少乙個匹配時,inner join 關鍵字返回行

function quicksort(arr) 

var s = math.floor(arr.length/2);

var temp = arr.splice(s,1);

var left=;

var right=;

for(var i=0;i=temp)

} return quicksort(left).concat(temp,quicksort(right));

}

面試尾聲

面試官的突然一聲「我這邊沒有什麼問題了」,嚇了我一跳,懸了懸了,我還想著跟他嘮嗑兩小時呢,嘮嗑的感覺真好。

「我這邊沒有什麼問題了,請等待hr的通知吧」

面經 記一次位元組跳動前端面試經歷

博主找我修改簡歷,給他提了一些建議,不久他就收到了位元組跳動面試。不知道是不是提的建議有效果 ps 文中加了一些我的注釋。正文如下 需要提前說明的是,該流程記錄皆出自本人本次面試的經歷,和其他人的可能有所出入。開始面試後,首先是自我介紹。面試官不一定提前看過簡歷,或者只是一覽而過,所以面試前有必要準...

1 位元組跳動 前端面試

面試官 先讓進行一下自我介紹。於是簡單的介紹後,就開始正式進入面試階段 1 手寫快速排序 該方法的基本思想是 1 先從數列中取出乙個數作為基準數。2 分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。3 再對左右區間重複第二步,直到各區間只有乙個數。var quicksor...

位元組跳動筆試面試經歷

一面是一位和藹的中年程式設計師。1.高階函式 一步一步引導我說出思路!最後面試結束後我查了乙個是乙個js術語。面試官對我說 因為你們學校學習和工作之間是有差距的,所以不會直接問你知識,我會給你一些線索看看你的思路 這個問題大概答出了大半題,大概是這樣。2.筆試經歷 讓我驚訝的是面試官還願意聽聽我筆試...