我的簡歷經(jīng)常經(jīng)常被系統(tǒng)撈起來面試造成,目前是第三次,所以一定要單獨寫一篇
一面(2小時):
1雄嚣、介紹自己晒屎,主要是技術(shù)棧,近年來的項目
2缓升、自學(xué)前端入門鼓鲁,如何自學(xué)的,GitHub港谊,小項目
3骇吭、平移動畫,有幾種實現(xiàn)歧寺,優(yōu)劣燥狰,css3transition,transform
4、是如何在面試過后知道自己回答得好不好斜筐,平時如何學(xué)習(xí)進(jìn)步(項目龙致,源碼,看書)顷链,項目做了哪些優(yōu)化
5目代、pc端移動端占比,移動端css有什么區(qū)別嗤练,rem為什么16px
6榛了、webpack如何構(gòu)建工程,用過哪些工具(gulp煞抬,parcel)
7霜大、es5和6、7區(qū)別革答,如何把es6轉(zhuǎn)成es5僧诚,babel,polyfill
8、回調(diào)蝗碎,promise湖笨,async await
9、自己比較滿意的項目蹦骑,給你時間的話你會怎么對待這個項目(優(yōu)化慈省,總結(jié)寫文章),如何用canvas畫出圖表
10、孫節(jié)點通信边败,context袱衷,redux等,context具體實現(xiàn)和接收
11笑窜、如果不涉及頁面渲染致燥,變量怎么辦。static等
12排截、未來的規(guī)劃嫌蚤,想成為什么樣的前端
13、有沒有什么要問他的(在閑魚做社區(qū)魚塘公眾號架構(gòu)断傲,運營后臺脱吱,活動頁面;加班適中沒有很閑也沒有996认罩,對項目負(fù)責(zé)箱蝠;閑魚ctoc有很大用戶和新挑戰(zhàn),是淘寶技術(shù)旗下垦垂,做很多嘗試)
14宦搬、反饋說感覺比我一年多以前的簡歷還要好
筆試+問問題(1小時)
筆試是用內(nèi)部共享編輯器,面試官可以實時看到面試者寫代碼劫拗,ide不能調(diào)試间校,寫完會問問題
第一題
// 給定一個字符串,請你找出其中不含有重復(fù)字符的 最長子串 的長度杨幼。
// 示例 1:
// 輸入: "abcabcbb"
// 輸出: 3
// 解釋: 因為無重復(fù)字符的最長子串是 "abc",所以其長度為 3聂渊。
// 示例 2:
// 輸入: "bbbbb"
// 輸出: 1
// 解釋: 因為無重復(fù)字符的最長子串是 "b"差购,所以其長度為 1。
// 示例 3:
// 輸入: "pwwkew"
// 輸出: 3
// 解釋: 因為無重復(fù)字符的最長子串是 "wke"汉嗽,所以其長度為 3欲逃。
// 請注意,你的答案必須是 子串 的長度饼暑,"pwke" 是一個子序列稳析,不是子串。
function findNoRepeatStr(str){
if(str.length===0) return 0
let res = str[0]
let finRes = res;
for(let i=1;i<str.length;i++){
let index = res.indexOf(str[i]);
if(index===-1){
res= res + str[i]
if(res.length>finRes.length){
finRes = res;
}
} else {
res = res.slice(index + 1)+str[i]
}
}
return finRes.length
}
1弓叛、還有什么思路
2彰居、判空
3、出bug解決
4撰筷、時間復(fù)雜度
第二題
// 請實現(xiàn) `makeGroups` 方法陈惰,使得數(shù)組數(shù)據(jù)按 `groupId` 分組,并以 `value` 為排序字段毕籽,達(dá)到如下效果:
const dataSource = [
{value: "1", groupId: 'a'},
{value: "15", groupId: 'b'},
{value: "7", groupId: 'a'},
{value: "9", groupId: 'c'},
{value: "5", groupId: 'b'},
{value: "11"}
];
const groups = makeGroups(dataSource);
console.log(groups);
/* 輸出數(shù)據(jù)如下:
[
[
{value: "1", groupId: 'a'},
{value: "7", groupId: 'a'}
],
[
{value: "5", groupId: 'b'},
{value: "15", groupId: 'b'}
],
[
{value: "9", groupId: 'c'}
],
[
{value: "11"}
]
]
*/
function makeGroups(dataSource){
let res = []
dataSource.forEach(x=>{
let index = res.findIndex(item=>item[0].groupId === x.groupId)
if(index===-1){
res.push([x])
} else {
res[index].push(x)
}
})
return res.map(x=>
x.sort((m,n)=>+m.value-(+n.value))
)
}
1抬闯、+操作井辆,字符轉(zhuǎn)數(shù)字,NaN
2溶握、forEach杯缺,map
3、其它思路
二面面試官服務(wù)端:(40分鐘)
- 有沒有做過服務(wù)端
- 用沒用過強類型語言睡榆,為什么js是弱類型語言
- js如何在瀏覽器運行
- 說說項目萍肆,c++編譯
- 單線程如何工作
- 未來規(guī)劃
- 對象的生命周期
- 閉包是怎么回事
之后
- 看下webpack
- 編譯原理
- context redux
- leetcode hard
- ts,vue3源碼
- 復(fù)盤passport·肉微,flow , charts等項目
- js工作原理到瀏覽器匾鸥,到機器碼
天貓海外
1、關(guān)閉動畫為什么會優(yōu)化
2碉纳、smooth
3勿负、請求在哪個生命周期
4、update怎么用
lazada
依然是共享編輯器筆試
constructor(){
this.subs = {}
}
on(event, callback){
if(this.subs[event] === 'undefined'){
this.subs[event] = []
} else {
this.subs.push(callback)
}
}
off(event,callback){
let index = this.subs[event].indexOf(callback)
if(index>-1)this.subs[event].splice(index,1)
if(this.subs[event].length === 0){
delete this.subs[event]
}
}
trigger(event, options){
this.subs[event].forEach(x=>{
x(options)
})
}
}
2. 寫個轉(zhuǎn)換函數(shù)劳曹,把一個JSON對象的key從橫杠形式(Pascal)轉(zhuǎn)換到小駝峰形式(Camel)奴愉,即{“a_b”:1}——>{“aB”:1}
var trans = function(obj){
let resObj = {}
for(let i in obj){
console.log(i)
resObj[pascalToCamel(i)] = obj[i]
}
function pascalToCamel(str){
let arr = str.split('_')
let resarr =arr.slice(1).map(x=>{
let camel = x.slice(0,1).toUpperCase()+x.slice(1)
return camel
})
return [arr[0],...resarr].join('')
}
return JSON.stringify(resObj)
}
let test = {a_b:1}
console.log(trans(test))
3. 2個正整數(shù)字符串的相加,即 '1'+'19'——>'20'(考慮超長字符串相加)
var addBigInt = function(a,b) {
if(a.length<b.length){
[a,b] = [b,a]
}
b = Array(a.length-b.length).fill(0).join('') + b
console.log(a,b)
let carry = 0
let res = ''
for(let i=a.length-1;i>=0;i--){
let sum = parseInt(a[i])+parseInt(b[i])+carry
if(sum>9){
carry = 1
} else {
carry = 0
}
res = (sum)%10 + res
}
if(carry === 1) res = 1 + res
return res
}
console.log(addBigInt('1','19'))
問答:
http頭部有哪些
分為通用铁孵,請求锭硼,響應(yīng),實體
BFC蜕劝,display屬性
diff檀头,唯一key,dirty compnent
前端緩存岖沛,cache暑始,session 區(qū)別
egg koa
隱藏元素方式,區(qū)別
UDP TCP
TCP:可靠婴削,要握手連接廊镜,有流量控制擁塞控制
UDP:高效不可靠,適合直播視頻等