筆試
總的題型是20道單選,一道問(wèn)答募舟,三道編程祠斧,兩個(gè)小時(shí)。
單選前端知識(shí)和計(jì)算機(jī)基礎(chǔ)對(duì)半分拱礁,前端那部分沒(méi)什么好說(shuō)琢锋,都是老生常談,不難呢灶,計(jì)算機(jī)基礎(chǔ)涵蓋數(shù)學(xué)操作系統(tǒng)數(shù)據(jù)結(jié)構(gòu)網(wǎng)絡(luò)原理甚至還有l(wèi)inux都有涵蓋吴超。
印象最深的題是一個(gè)有7個(gè)元素的棧有幾種出棧方式。
問(wèn)答題是給一個(gè)成績(jī)表格鸯乃,點(diǎn)擊分?jǐn)?shù)可以排序鲸阻,第一次正序排第二次倒序排。
編程題的編程環(huán)境有點(diǎn)坑爹缨睡,你要知道用他給的輸入接口鸟悴。還好,結(jié)束前兩分鐘全部AC了奖年。
第一題:是一個(gè)集合相關(guān)的問(wèn)題细诸,理清邏輯很快就可以寫(xiě)出來(lái)
```
//第一題 集合
function xyf(arr) {
var w = +arr[0];
var x = +arr[1];
var y = +arr[2];
var z = +arr[3];
var p = [];
var q = [];
// console.log(w,x,y,z);
for (var i = w; i <= x; i++) {
p.push(i);
}
for (var j = y; j <= z; j++) {
q.push(j);
}
var result = [];
//這里可以優(yōu)化,解構(gòu)交換?
if (p.length > q.length) {
for (var i = w; i <= x; i++) {
for (var j = y; j <= z; j++) {
result.push(i / j);
}
}
} else {
for (var j = y; j <= z; j++) {
for (var i = w; i <= x; i++) {
result.push(i / j);
}
}
}
//集合去重
return result.filter(function(item, index) {
return result.indexOf(item) === index;
});
}
```
第三題是我第二個(gè)做的拾并,因?yàn)榈诙}我認(rèn)為是最難的揍堰。就是一個(gè)反向去重。
```
//第三題嗅义,倒數(shù)去重
function xyf(arr) {
arr = arr.filter(function(item, index) {
return arr.lastIndexOf(item) === index;
});
return arr.toString().split(",").join(" ");
}
```
第二題我筆試的時(shí)候用了eval屏歹,后來(lái)覺(jué)得現(xiàn)實(shí)中不會(huì)這樣用,很不安全也耗性能就又改了一下
```
//第二題 奇怪的表達(dá)式 不用eval的話還需要解析+*-然后switch
function xyf(str) {
var oldTime = Date.now();
if (str.length === 1) {
return str;
}
//第一個(gè)參數(shù)
var first = str[0];
//存儲(chǔ)表達(dá)式的數(shù)組
var arr = str.match(/[*+-]./g);
//結(jié)果
var result = eval(first + arr[0]);
var index = 1;
while (arr[index] && index < arr.length) {
var newStr = result.toString() + arr[index];
result = eval(newStr);
index++;
}
var newTime = Date.now();
console.log(newTime - oldTime);
return result;
}
// 性能好很多,但代碼長(zhǎng)了很多
function xyf(str) {
var oldTime = Date.now();
if (str.length === 1) {
return str;
}
//第一個(gè)參數(shù)
var first = str[0];
//存儲(chǔ)表達(dá)式的數(shù)組
var arr = str.match(/[*+-]./g);
//結(jié)果
var result = cacl(first,arr[0].substring(0,1),arr[0].substring(1));
var index = 1;
while (arr[index] && index < arr.length) {
result = cacl(result,arr[index].substring(0,1),arr[index].substring(1));
index++;
}
var newTime = Date.now();
console.log(newTime - oldTime);
return result;
}
function cacl(num,exp,otherNum) {
//理論上這里要做輸入類(lèi)型判斷
num = parseInt(num) ;
otherNum = parseInt(otherNum) ;
switch (exp) {
case "+":
return num + otherNum;
break;
case "*":
return num * otherNum;
break;
case "-":
return num - otherNum;
break;
default:
throw num,exp,otherNum+"error";
break;
}
}
```
面試
大約是6號(hào)之碗,我接到豬廠的12號(hào)的面試邀請(qǐng)蝙眶。沒(méi)的說(shuō),馬上買(mǎi)了昆明到杭州的往返機(jī)票褪那。
期間參觀了豬廠的各個(gè)建筑幽纷,總體感覺(jué)豬廠還是很注重員工待遇的。食堂和一天包五餐就不說(shuō)了博敬,一應(yīng)俱全的硬件設(shè)施和娛樂(lè)方式友浸,甚至加個(gè)班還有酒店級(jí)待遇。
我的處女面偏窝,就這樣給了黃易收恢,面試前的準(zhǔn)備重點(diǎn)也在自己的項(xiàng)目武学、算法和es6上面,和面試官的關(guān)注點(diǎn)不一樣伦意。
不過(guò)也讓我汲取到一個(gè)教訓(xùn):校招還是非常注重基礎(chǔ)的火窒。
好了,回到正題來(lái)驮肉。
一面:
一面基本上是沿著簡(jiǎn)歷問(wèn)的熏矿,做過(guò)的項(xiàng)目,使用過(guò)的工具离钝,和上面列的名詞基本都問(wèn)了票编。點(diǎn)到為止,不做過(guò)多的糾纏奈辰,我多說(shuō)了反而被面試官打斷栏妖。
比如說(shuō):
你在項(xiàng)目里使用了xxxxxx這個(gè)框架,為什么不用xxx和xxxx奖恰?它們分別解決什么問(wèn)題?
你說(shuō)你在項(xiàng)目里碰到了xx問(wèn)題宛裕,那么具體是怎么解決的瑟啃?
css選擇器有哪些?
restful是什么揩尸?
...
...
然后聊完簡(jiǎn)歷后面試官出了個(gè)題:手寫(xiě)左固定右適應(yīng)的布局并且點(diǎn)擊其中的列表項(xiàng)會(huì)alert出內(nèi)容蛹屿。
我html部分是用了section,css用flex布局岩榆,js本來(lái)遍歷一下li元素逐個(gè)加上事件就好了但我偏要作死错负,用了個(gè)事件委托,結(jié)果把自己搞進(jìn)坑里了勇边。之后在講解代碼的時(shí)候考官呵呵一笑犹撒,還認(rèn)真地詢問(wèn)我,捕獲階段真的是這樣的粒褒?一面就跪在這了识颊。
二面:考官一上來(lái)扔過(guò)來(lái)一個(gè)題。有點(diǎn)變態(tài)奕坟,因?yàn)檫@道小小的題考察了作用域祥款、提升、閉包月杉、原型鏈刃跛、new關(guān)鍵字、this苛萎、優(yōu)先級(jí)等諸多js知識(shí)點(diǎn)桨昙,后來(lái)我查的時(shí)候發(fā)現(xiàn)是一道網(wǎng)上真題跌帐,還有人專(zhuān)門(mén)為這題分析了一遍。
鏈接如下:
我直接就懵了绊率,做了一會(huì)就直接和面試官說(shuō)有點(diǎn)難谨敛,需要想一下,然后他就去上廁所了滤否,說(shuō)你慢慢做脸狸。
過(guò)了幾分鐘,他回來(lái)了藐俺,我說(shuō)這個(gè)題應(yīng)該是考原型鏈炊甲,然后巴拉巴拉分析了我給出的答案,之后去搜這個(gè)題對(duì)答案欲芹,沒(méi)想到后面搜的時(shí)候發(fā)現(xiàn)考的點(diǎn)太多了卿啡。這個(gè)題之后考官問(wèn)了跨域和性能優(yōu)化的事情,我隨便答了幾句就結(jié)束了菱父,最后問(wèn)他評(píng)價(jià)颈娜,他說(shuō)基礎(chǔ)不行。哎浙宜,我寫(xiě)ts寫(xiě)慣了官辽,已經(jīng)不怎么關(guān)注js原本這些奇葩的特性了,自然就跪了粟瞬,事后惡補(bǔ)了《你不知道的Javascript》同仆,才算進(jìn)一步認(rèn)識(shí)JS這門(mén)語(yǔ)言。
三面hr基本都是些套路
什么你為什么報(bào)考你這個(gè)大學(xué)你這個(gè)專(zhuān)業(yè)裙品?
為什么選擇來(lái)網(wǎng)易來(lái)杭州俗批?投了其他企業(yè)嗎?
你有女朋友嗎市怎?以后打算怎么安排岁忘?
......
最后我問(wèn)了HR時(shí)間上能不能寬松些,因?yàn)樵颇洗髮W(xué)大四還要上一個(gè)月課焰轻,HR說(shuō)到時(shí)候會(huì)想辦法的臭觉,我估計(jì)時(shí)間問(wèn)題也是我跪的原因之一。
總之辱志,網(wǎng)易對(duì)校招生的要求就是基礎(chǔ)知識(shí)一定要理解透徹理解的深蝠筑。像我這種習(xí)慣了各種語(yǔ)法糖和新特性,使用慣了庫(kù)的人還需要多補(bǔ)補(bǔ)基本概念揩懒。