找实习的坎坷道路呀-网易篇

淘宝的暑期实习招聘比较早,腾讯的过了半个多月之后也开始了,淘宝那次笔试铩羽之后,心情郁闷 [泪] ,四处乱投简历,神马百度、移动、卓越亚马逊、支付宝、微软、网易的都投了,不过除了百度(百度是不是把广东鄙视了,宣讲会都没)和移动是比较正式的暑期实习外,其他规模都不太大,算是投个简历打打酱油的。

暂时只有网易的回复了,让我4月29日去笔试。这个招聘是梦石大神在Q群里发的“网易招聘前端10名”,当时就抱着玩玩的心态投了简历。广州网易大厦在科韵路,广州信息港,那附近一堆IT企业,有百度、联想啥的分公司也有。

网易大厦里面还是蛮气派的,不过这个笔试让我觉得有点郁闷,就这么5、6个人(虽然是分批的,但估计投简历的人很少),考官是一个黑衣彪悍小中年,不过样子还算和蔼。

拿到试卷后,无限郁闷,感觉就是他随手出的一份小考卷,上面连网易的标识都没,题目也不是太难,就是些HTML/CSS/Javascript的基础题,主要都是考语法。

我继续说说那些被恶心到的题目吧:

1、下面代码输出什么?

var a=100;
(function(){
	alert(a);
	var a=1;
})()

(function(){})() 这东西是立即运行的匿名函数,这我是知道的,在jQuery源码里面见过。

JavaScript里面,小括号能把我们的表达式组合分块,并且每一块(每一对小括号),都有一个返回值,这个返回值是小括号中表达式的返回值。所以,当我们用一对小括号把匿名函数括起来的时候,实际上小括号对返回的,就是一个匿名函数的Function对象。因此,小括号对加上匿名函数就如同有名字的函数般被我们取得它的引用位置了。所以如果在这个引用变量后面再加上参数列表(此处是一对小括号,参数列表为空),就会实现普通函数的调用形式。

但是!上帝知道那个a的作用域是啥!个人觉得alert(a)的a应该是全局的a,即this.a,故输出为100。

不过事实明显不是这样的,输出应该为undefined~~~(被恶心了 [可怜]

后来我试了一下

var a=100;
(function(){
	alert(a);
})()

输出的竟然是100!!!

说明alert(a)是可以访问全局变量a的,题目中输出undefined的原因应该是JavaScript解释的时候,将function中的a视为了局部变量,并开辟了空间,alert的时候局部变量a的值尚未定义,故输出undefined。

2、JavaScript中的insertBefore的工作原理是什么,请自行实现insertAfter。

这题不难,熟悉DOM就行了,不过我明显对DOM熟悉的不够,还是手写代码的问题。翻翻API,实现方法如下:

function insertAfter(newElement, target){
	var parent = target.parentNode;
	if(parent.lastChild == target){
		parent.appendChild(newElement);
	}else{
		parent.insertBefore(newElement,target.nextSibling);
	}
}

3、此题忘了题目,错就是错在事件模型的兼容性上,也不是太难。

点击链接a时,弹出警告框,内容为该链接的href

<ul>
    <li><a href="#1">1</a></li>
    <li><a href="#2">2</a></li>
    <li><a href="#3">3</a></li>
    <li><a href="#4">4</a></li>
    <li><a href="#5">5</a></li>
</ul>

一方面是对兼容性了解不够,一方面的确对JavaScript的语言特性不是很熟悉,正确做法如下:

//问题一:event、target对象的获取
function handleEvent(e){
    var evt = e || window.event;
    // 操作evt,此时它引用的是该事件对象
    var target = evt.target || evt.srcElement;
    // 操作target,此时它引用的是触发事件的元素
    // target和this不同,this是绑定事件的元素
}

//问题二:事件绑定
//传统模型(此方法的缺点是会覆盖之前绑定的事件)
element.onclick = handleEvent;
//避免上面的缺点,要先做对象检测,然后调用事件绑定
//W3C模型
element.addEventListener('click',handleEvent,false);
//or 微软模型
element.attachEvent('onclick',handleEvent);

2011/5/18修订:另外还要利用“事件冒泡”机制,将事件绑定到ul上,而不是对每个a注册事件(网易这个笔试的内涵很深嘛)

 

后面还有些数学题/智力题,我好像全都做出来了 [酷] ,下面分享两道还记得的(答案自己想哈~):

小学数学题:

A先生平时在公司5点钟下班,他的司机会提前从家里开车到公司,5点准时到它公司送A先生回家。

某日,A先生4点钟提前下班,直接往家里走,路上遇到司机从家里开来的车,上车回家,发现比平时早了20分钟。

又某日,A先生4点30分提前下班,打算还是直接往家里走,路上又遇到司机从家里开来的车,上车回家,请问这次A先生提前了多少分钟到家。

 

好像是微软的面试题:

某房间内有3个灯泡,房间外对应有3个开关,房间无窗,只有一扇门,不进门无法看到房内的灯光。

请问如何只进入房间一次,就找出所有房外开关与房内灯泡的对应关系。

 

我好像提前了十多分钟交卷,考官就直接面试我(当然是先bs一下我的考卷,主要指出我上面提到的那3题),他问我有没带简历,我说没有,以为就是来笔试的(很囧有木有!!)

他说没所谓,然后就顺口问一些项目经历什么的。他惊讶的发现我是大三的,跟我说这个是到北京去工作的,是社会招聘,网易一般没有暑期实习招聘(纯粹摆乌龙,弄错了, [衰] )。

他说帮我问问广州网易有没需要实习部门(明显是托词啦,还有些什么“优秀的人才我们也不希望错过”神马的~~~),希望我参加网易10月份的校招,会优先考虑。

这个酱油打大了。

总而言之,就是“革命尚未成功,同志仍需努力”[奋斗]

 

我说:回去好好啃《ppk on JavaScript》吧~

发布者

Rolf

伪文艺IT攻城师,热爱前端,热爱互联。

《找实习的坎坷道路呀-网易篇》有2个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

[喜欢] [嘻嘻] [奋斗] [问号] [鼓掌] [泪] [酷] [强] [耶] [握手] [心] [给力] [神马] [围观] [奥特曼] more »