2007年10月14日星期日

Recruiting Events: Xunlei (Part 1)

所有Recruiting Events系列文章由Cat Chen记录并发表于http://Chinese.CatChen.biz,目的不是公布招聘有关的题目或技巧,仅用于个人知识归纳以及经验总结,如需转载请保留出处。

第一次参加企业招聘笔试,竟然是迅雷……嗯……其实也没什么好“竟然”的,应该“竟然”的是“第一次”,完全没经验的情况下就跑去一所“陌生”的学校和一群陌生的人考试,而且课室里大部分人还不是和我考一样的题目。

我仅仅应聘一个职位,就是前端开发工程师,因此找到对应的课室就坐下来。之前幸运的碰到一位同班同学,他说简历投了三个职位,分别有短信通知他到三个不同的课室笔试,不知道他后来怎么办了。前端开发工程师的题目就5道大题,统一的答题纸上钩选应聘职位的竟然没有“前端开发”一栏,faint死了……

第1题考正则表达式,一个小题要求匹配字符串中首尾的空格,另一个小题要求匹配仅包含数字、字母、下划线的6到20位的字符串。我不熟悉正则表达式,所有东西都仅仅有个概念但记不住,想了很久也没写什么,最后决定凭直接写。第一题想不到空格是斜杠什么,空白字符好像是blank吧,于是写了个(\b)*.*?(\b)*上去,其实空白字符是space,应该是(\s)*.*?(\s)*,汗……中间那个.*?是非贪婪匹配,否则把末尾的空白自己也吃掉了,我只记得非贪来匹配好像是*后面加一个?,然后就写上去了。第二题我同样不知道[A-Za-z0-9_]其实就是\w,于是就写了[A-Za-z0-9_]{6,20}。

第2题要求写一个String类的扩展函数,要求按老ASCII码单字节/汉字双字节模式,计算一个字符串的字节长度。这个……我又载晕掉了,JavaScript中的String能够好像传统语言的char[]那样使用索引号获取单个字符,但是JavaScript没有带表单个字符的数据类型,获取到的还是字符串,两个字符串之间能够用大于号小于号比较的吗?在JavaScript中我还真的没这样用过呢,不过某些高级语言支持字符串的大小比较,结果相当于按字典排序后两个字符串的顺序比较,估计JavaScript也支持,所以我就按照那样子写了。答案如下:
String.prototype.byteLenght = function() {
  var count = 0;
  for (var i = 0; i < this.length; i++) {
    if (this[i] <= "\u00ff") { /*"\u00ff"是单字节ASCII码中最大的一个*/
      count = count + 1;
    } else {
      count = count + 2;
    }
  }
  return count;
}
在做完整份题目后,我又无无聊聊在代码后再加了一段注释,大意是:在JavaScript中实现这样的计算完全没有实际用途。首先,因为JavaScript是完全基于unicode的,按ASCII方式计算字节长度没有意义。其次,如果这时用于计算屏幕显示宽度的,其实也不准确,在非等宽字体中"w"和"i"的宽度差了几倍,显示宽度不能用这样的方法计算。

第3题是要求列举所知道的JavaScript与Flash中的ActionScript互调用方法,还要求提供代码说明。我仅仅在过去有过一点点了解,就是Flash的ActiveX对象对外暴露两个方法,分别用于传入和传出一个字符串,而这两个方法对应调用内部的ActionScript函数,因此ActionScript的处理应该写在这两个函数之中。当时就这样写上去了,并且说明我不记得具体的函数名称,给我查资料或者上网Google的话就会知道。我不知道阅卷那个人看到我每题都一堆回答以外的评论会怎么想,哈哈……后来查了一下,我印象中的那个函数其实是远古的fscommand,而Adobe现在建议大家使用ExternalInterface。

第4题要求列举cookie,并且包括过期时间。同样是不懂,记忆中只有document.cookie一样东西,从来没调用过,仅仅阅读过一次别人的调用代码,按照什么格式把相关属性保存在String我也不清楚,就知道第一个是键值对,至于过期日期……真的不知道了。既然连按照什么格式读取都不知道,所以这题我干脆就什么都没写,本来想着不会编写代码也能写写我所知道的,后来决定跳过。其实知道格式就很简单了,格式可以参考quirksmode上讲述cookie的文章

第5题是开放式的,要说自己擅长的前端开发方向。我用了一版纸回答前面的3个问题,又用了一版纸完成了第5题的吹水,哈哈……说了擅长XHTML + CSS + JavaScript,讲了一下过往项目,最后不忘插上一句“更多项目信息请浏览CatChen.biz”。

两个小时的笔试时间,我一百分钟做完,没有一道题是完全懂并且有把握的,因为我是习惯有什么不懂就去搜索的人,从来不背,而考到的点都是我平常很少用的。考完半天后就收到笔试复试通知了,接着第二天去复试。

2 条评论:

  1. 今天单击进来试试,竟然在校园网能直接上这里,难道解封了?不错

    回复删除
  2. 时不时解封吧,我的是自定义域名,比值计用Blog*Spot的域名要好一些吧。

    回复删除