笔试面试

阿里巴巴前端实习生在线笔试考后经验总结

发布时间:2023-09-19 21:59:51

  写在前面

  还是太年轻,第一次在线笔试有些紧张了

  一、2015题目

  我遇到的题目:6个选择其中3个多选,1个填空,6个大题。客服姐姐说题目是随机给的(因为给了一个时段考试,而不是统一时间点开考),不过题型应该是固定的。

  1.单选:一个数组,两个引用,相互赋值,问输出眩晕抗性-30%

  2.单选:问一个return匿名函数的函数的执行结果,内部还有apply眩晕抗性再-69%

  3.单选:问字符串替换结果是什么,当然,又是套了几层,绕了几圈眩晕抗性再-1%,嗯,做完这道给彻底绕晕了

  4.多选:移动端,如果A按钮上覆盖了一个B按钮,给B按钮的touchstart事件处理器中添加什么处理能让A触发click

  按钮被挡住了,要想恢复交互性,隐藏遮挡物就好了,只敢选了visible一个,因为不确定题目是不是要在本次交互中触发click,不清楚display:none和从DOM中删除会不会影响冒泡,没敢选经过测试,发现本题根本不存在冒泡(好吧,当时可能没睡醒),顺便再测试了一下有冒泡的情况,发现不影响冒泡,即便remove掉了,还是会冒泡

  测试代码如下:

  5.多选:前端优化,下列哪一个可以减少HTTP请求数最近正在翻译Yahoo!的30几条前端优化原则,压力不大

  6.多选:题目忘记了记得除了前端优化的,其它两道都没有绝对把握

  7.填空:个人博客地址想了下填了cnblogs,因为个人网站做得还不完善,拿不出手

  8.大题:生成10个10-100之间的随机数,并降序排列隐约记得书上说Math.random返回(0,1]值

  查证之后发现JS高程中文版135页说(0,1),而网上的普遍说法是[0,1),后一种就和C里面的一样。以前看书记得js的随机数和C的不一样。经过测试发现书上是错的,确实含0不含1。总结如下:

  1.获取[a,b]:Math.round(Math.random()(b-a)+a)//四舍五入

  2.获取(a,b]:Math.ceil(Math.random()(b-a)+a)//向上取整(天花板)

  3.获取[a,b):Math.floor(Math.random()(b-a)+a)//向下取整(地板

  4.获取(a,b):好奇怪的需求,不如直接用第一种吧

  测试random范围的代码如下:

  varx=parseInt((Math.random()90+10+'').split('.')[0]);//取整数部分

  9.大题:实现IOS风格的switch按钮,要求用多种方式实现花了太多时间,“实现”是要用嘴实现还是用代码?用代码写了个小实现,七八分钟就过去了,划不来

  10.大题:给String添加原型方法,实现简单的模版替换考原型和正则表达式,不会在原型方法中获取字符串的值,书中说一般不要给原型加自定义属性,会污染环境,就没太在意这方面,只注重了去理解原型,构造函数,作用域链的本质及其关系,结果。。

  查了一下,发现this就是原字符串的值,阿席巴思密达~~~代码如下:

  functionstrcat(str){

  returnthis+str;

  }

  String.prototype.strcat=strcat;

  alert('xi'.strcat('ba'));

  11.大题:如何在画布上画出任意多个边界不相交的圆,考虑时间和空间的平衡后半句感觉是要写代码,前半句又不像,最后没时间了,就卖了个萌??“最简单的方法是画同心圆”,好吧,希望能让改卷的大大心情愉快

  12.大题:实现loadScript(url,callback)异步加载脚本,完成之后执行回调函数,要求支持IE非要支持IE吗,时间不够了,只好写出步骤注释

  整理的代码库里收藏了xhr,如下:

  /获取HttpRequest对象,可以兼容各个浏览器包括IE5.5+/

  functiongetHttpObject(){

  if(typeofXMLHttpRequest=="undefined"){//如果该对象未定义,则自定义该对象

  XMLHttpRequest=function(){

  try{

  returnnewActiveXObject("Msxml2.XMLHTTP.6.0");

  }catch(e){}

  try{

  returnnewActiveXObject("Msxml2.XMLHTTP.3.0");

  }catch(e){}

  try{

  returnnewActiveXObject("Msxml2.XMLHTTP");

  }catch(e){}

  try{//老版本的InternetExplorer(IE5和IE6)

  returnnewActiveXObject("Microsoft.XMLHTTP");

  }catch(e){}

  returnfalse;

  }

  }

  returnnewXMLHttpRequest();

  }

  varxhr=getHttpObject();

  xhr.onreadystatechange=function(){


95%的人继续看了

其他人推荐看