第一次前端實習生面試的經驗分享
阿新 • • 發佈:2021-01-10
前言
12月第一次得到位元組的前端面試機會,結果一手抓考試一手抓面試,考試考的還不錯,結果面試還是準備不充分,第一回合就掛了,當時面完整個人是懵的。現在比較閒了,記錄一下當時面試的一些問題。
網路知識
1. 跨域問題是什麼,怎麼解決跨域問題
跨域是因為瀏覽器的同源政策造成的,瀏覽器會限制不同源(包括域名、埠、協議)的XHR請求,因此不同來源的img、js指令碼不會被瀏覽器攔截,但是XHR請求會被攔截。
解決方案:
- 傳送JSONP請求代替JSON資料,不推薦,因為只能使用GET請求,服務端還需修改程式碼;
- 使用Nginx進行反向代理,即讓瀏覽器訪問Nginx伺服器即可,只需要配置Nginx,在前端的請求中修改請求路徑即可;(當時只會這個)
- 使用CORS請求,可以參考http://www.ruanyifeng.com/blog/2016/04/cors.html。
2. GET和POST的區別
相對來說基礎的東西,簡單來說GET用來請求資料,POST用來提交資料,雖然GET可以用引數來提交一些東西,但是會放在URL裡,因此不要用GET傳送敏感資訊,儘量還是用POST請求提交資料。
CSS、JS
1. 垂直居中怎麼實現
- 高度已知:
.father { position: relative; background-color: aqua; height: 300px; } .son { position: absolute; background-color: brown; height:100px bottom: 0; top: 0; margin: auto; }
這裡是使用絕對定位,將子元素上下邊沿緊貼父元素,然後再用margin:auto來讓子元素實現垂直居中。
2.高度未知:
.father {
display: flex;
background-color: aqua;
height: 300px;
align-items: center;
}
.son {
background-color: brown;
}
使用flex佈局,然後align-items為center,讓子元素在交叉軸(預設縱向)上的佈局為居中。
.father {
background-color: aqua;
height: 300px;
}
.father::after{
content: '';
display: inline-block;
vertical-align: middle;
height: 100%;
}
.son {
display: inline-block;
background-color: brown;
}
這裡是使用display:inline-block的方法,讓子元素成為一行,然後再插入after偽元素,並且讓偽元素高度佔滿整個高度,這樣看起來子元素就是垂直居中的。
2. JavaScript的EventLoop
console.log('a');
setTimeout(function () {
console.log('b');
new Promise(function (resolve) {
console.log('c');
resolve();
}).then(function () {
console.log('d')
})
})
new Promise(function (resolve) {
console.log('e');
resolve();
}).then(function () {
console.log('f')
})
問列印的順序,看這個就明白了https://mp.weixin.qq.com/s/UBCa-kYgSLk6_4XCP-EzGg
演算法
1. 排序,二叉樹遍歷
沒啥說的,會就行。
2. leetcode 887
https://leetcode-cn.com/problems/super-egg-drop/
先二分查詢,如果第一個雞蛋碎了,那麼就再逐個遍歷嘗試即可。
總結
個人來說,演算法這邊太不熟練了,約莫一年沒做過演算法題連快排也忘了,在這裡吃了大虧。
題目難度來說還算簡單的,就是大概測試一下一些基礎內容。