面試題目回憶
- 簡單介紹自己(自我介紹)
- 你為什么選擇前端作為你的職業(yè)生涯/發(fā)展方向?什么時(shí)候開始學(xué)前端的?項(xiàng)目經(jīng)歷?
- TCP/IP的四層協(xié)議(名字)
- HTTP協(xié)議工作的協(xié)議層?TCP、UDP工作在哪一層,且它們之間的區(qū)別(展開問)
- TCP的擁塞控制
- HTTP的狀態(tài)碼分類(5類,功能)301、302、401
- css中盒模型box-sizing中content-box和border-box的區(qū)別(這個(gè)是忘記了這個(gè)點(diǎn),考的是普通盒模型和怪異盒模型)
- flex布局的理解
- flex各種屬性(flex-basic控制什么,作用)需要加強(qiáng)
- 寫結(jié)果題,考的是this指向,未答好
window.name = 'ByteDance';
function A () {
this.name = 123;
}
A.prototype.getA = function(){
console.log(this);
return this.name + 1;
}
let a = new A();
let funcA = a.getA;
funcA();
- js當(dāng)中0.1+0.2的結(jié)果是什么,為什么不是0.3?
- cookie和session在前端中的作用
- http是無狀態(tài)協(xié)議,服務(wù)端如何做到對(duì)客戶端的標(biāo)識(shí)
- 實(shí)現(xiàn)一個(gè)函數(shù),可以滿足sum(x, y)和sum(x)(y)兩種調(diào)用方式,
如sum(1, 2) = 3 , sum(1)(2) = 3
(附上我勉強(qiáng)能過的答案)
var sum = function(x, y){
return (y === undefined)? function(z){return x + z}: x + y;
}//應(yīng)該用閉包來做,我這個(gè)勉強(qiáng)算是個(gè)閉包吧…
- 對(duì)現(xiàn)在的框架的認(rèn)識(shí)(Angular、React、Vue)
- Promise執(zhí)行順序
setTimeout(_ => console.log(1))
new Promise(resolve => {
resolve()
console.log(2)
}).then(_ => {
setTimeout(_ => console.log(3))
console.log(4)
Promise.resolve().then(_ => {
console.log(5)
}).then(_ => {
Promise.resolve().then(_ => {
console.log(6)
})
})
})
console.log(7)//這題我答的不太可,Promise沒接觸過
- setTimeout和Promise的順序
- 發(fā)布訂閱模式以及是否了解 EventEmitter (這個(gè)我不太了解,所以面試官給了下一題)
- 給定一個(gè)字符串,請(qǐng)你找出其中不含有重復(fù)字符的最長子串的長度。
(abcabcbb: 3, pwwkew: 3, aaa: 1)(突然卡殼了,只有思路寫不出來,換了C++還寫不出來,囧死) - 自己的學(xué)習(xí)方式(自學(xué)方式)
面試官給出的建議:想深耕前端,flex是基礎(chǔ),一些框架盡量去接觸(這個(gè)時(shí)間久遠(yuǎn)沒有說好)、js語言底層的一些東西(setTimeout),基本功
總結(jié):與js相關(guān)的知識(shí)遺忘較大,未能說出自己對(duì)框架的理解,編碼能力待提高,flex是個(gè)重點(diǎn),需要繼續(xù)加油