国产激情久久久久影院小草_国产91高跟丝袜_99精品视频99_三级真人片在线观看

阿里巴巴前端實(shí)習(xí)生在線筆試總結(jié)

時(shí)間:2024-10-03 19:48:15 面試筆試 我要投稿
  • 相關(guān)推薦

2017阿里巴巴前端實(shí)習(xí)生在線筆試總結(jié)

  寫在前面:還是太年輕,第一次在線筆試有些緊張了。下面是2017阿里巴巴前端實(shí)習(xí)生在線筆試總結(jié),為大家提供參考。

2017阿里巴巴前端實(shí)習(xí)生在線筆試總結(jié)

  一、2017題目

  我遇到的題目:6個(gè)選擇其中3個(gè)多選,1個(gè)填空,6個(gè)大題?头憬阏f題目是隨機(jī)給的(因?yàn)榻o了一個(gè)時(shí)段考試,而不是統(tǒng)一時(shí)間點(diǎn)開考),不過題型應(yīng)該是固定的。

  1.單選:一個(gè)數(shù)組,兩個(gè)引用,相互賦值,問輸出眩暈抗性-30%

  2.單選:問一個(gè)return匿名函數(shù)的函數(shù)的執(zhí)行結(jié)果,內(nèi)部還有apply眩暈抗性再-69%

  3.單選:問字符串替換結(jié)果是什么,當(dāng)然,又是套了幾層,繞了幾圈眩暈抗性再-1%,嗯,做完這道給徹底繞暈了

  4.多選:移動(dòng)端,如果A按鈕上覆蓋了一個(gè)B按鈕,給B按鈕的touchstart事件處理器中添加什么處理能讓A觸發(fā)click

  按鈕被擋住了,要想恢復(fù)交互性,隱藏遮擋物就好了,只敢選了visible一個(gè),因?yàn)椴淮_定題目是不是要在本次交互中觸發(fā)click,不清楚display:none和從DOM中刪除會(huì)不會(huì)影響冒泡,沒敢選經(jīng)過測試,發(fā)現(xiàn)本題根本不存在冒泡(好吧,當(dāng)時(shí)可能沒睡醒),順便再測試了一下有冒泡的情況,發(fā)現(xiàn)不影響冒泡,即便remove掉了,還是會(huì)冒泡

  測試代碼如下:

  5.多選:前端優(yōu)化,下列哪一個(gè)可以減少HTTP請(qǐng)求數(shù)最近正在翻譯Yahoo!的30幾條前端優(yōu)化原則,壓力不大

  6.多選:題目忘記了記得除了前端優(yōu)化的,其它兩道都沒有絕對(duì)把握

  7.填空:個(gè)人博客地址想了下填了cnblogs,因?yàn)閭(gè)人網(wǎng)站做得還不完善,拿不出手

  8.大題:生成10個(gè)10-100之間的隨機(jī)數(shù),并降序排列隱約記得書上說Math.random返回(0, 1]值

  查證之后發(fā)現(xiàn)JS高程中文版135頁說(0, 1),而網(wǎng)上的普遍說法是[0, 1),后一種就和C里面的一樣。以前看書記得js的隨機(jī)數(shù)和C的不一樣。經(jīng)過測試發(fā)現(xiàn)書上是錯(cuò)的,確實(shí)含0不含1。總結(jié)如下:

  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范圍的代碼如下:

  var x = parseInt((Math.random()*90+10 + '').split('.')[0]);//取整數(shù)部分

  9.大題:實(shí)現(xiàn)IOS風(fēng)格的switch按鈕,要求用多種方式實(shí)現(xiàn)花了太多時(shí)間,“實(shí)現(xiàn)”是要用嘴實(shí)現(xiàn)還是用代碼?用代碼寫了個(gè)小實(shí)現(xiàn),七八分鐘就過去了,劃不來

  10.大題:給String添加原型方法,實(shí)現(xiàn)簡單的模版替換考原型和正則表達(dá)式,不會(huì)在原型方法中獲取字符串的值,書中說一般不要給原型加自定義屬性,會(huì)污染環(huán)境,就沒太在意這方面,只注重了去理解原型,構(gòu)造函數(shù),作用域鏈的本質(zhì)及其關(guān)系,結(jié)果。。

  查了一下,發(fā)現(xiàn)this就是原字符串的值,阿席巴思密達(dá)~~~代碼如下:

  function strcat(str){

  return this + str;

  }

  String.prototype.strcat = strcat;

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

  11.大題:如何在畫布上畫出任意多個(gè)邊界不相交的圓,考慮時(shí)間和空間的平衡后半句感覺是要寫代碼,前半句又不像,最后沒時(shí)間了,就賣了個(gè)萌——“最簡單的方法是畫同心圓”,好吧,希望能讓改卷的大大心情愉快

  12.大題:實(shí)現(xiàn)loadScript(url, callback)異步加載腳本,完成之后執(zhí)行回調(diào)函數(shù),要求支持IE非要支持IE嗎,時(shí)間不夠了,只好寫出步驟注釋

  整理的代碼庫里收藏了xhr,如下:

  /*獲取HttpRequest對(duì)象,可以兼容各個(gè)瀏覽器 包括IE5.5+*/

  function getHttpObject(){

  if(typeof XMLHttpRequest == "undefined"){//如果該對(duì)象未定義,則自定義該對(duì)象

  XMLHttpRequest = function(){

  try{

  return new ActiveXObject("Msxml2.XMLHTTP.6.0");

  }catch(e){}

  try{

  return new ActiveXObject("Msxml2.XMLHTTP.3.0");

  }catch(e){}

  try{

  return new ActiveXObject("Msxml2.XMLHTTP");

  }catch(e){}

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

  return new ActiveXObject("Microsoft.XMLHTTP");

  }catch(e){}

  return false;

  }

  }

  return new XMLHttpRequest();

  }

  var xhr = getHttpObject();

  xhr.onreadystatechange = function(){

  if(xhr.readyState === 4){

  if(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304){

  //執(zhí)行callback

  }

  else{

  //請(qǐng)求失敗

  }

  }

  }

  xhr.open('get', url, true);//準(zhǔn)備異步請(qǐng)求,get是為了響應(yīng)速度

  xhr.send(null);//發(fā)送請(qǐng)求,null是為了兼容性

  在線筆試讓人寫這種東西真的好嗎?

  根據(jù)園友@李明夕和@老樓在評(píng)論中的分析,我應(yīng)該是理解錯(cuò)題意了,不過沒關(guān)系,代碼如下:

  白色變紅色

  用script標(biāo)簽動(dòng)態(tài)加載(并執(zhí)行)腳本需要注意以下幾點(diǎn)問題:

  1.IE8-支持readystatechange和async;Chrome和FF不支持readystatechange,支持load,支持async;IE9/10、Opera同時(shí)支持readystatechange,load和async

  2.雖然readystatechange是HTML5事件,不過FF和Chrome至今都沒有實(shí)現(xiàn)它

  3.詭異的是IE6先ok再向下執(zhí)行再ok再ERROR,IE7/8先ERROR再向下執(zhí)行再ok,IE9+未知。而FF和Chrome正常,先向下執(zhí)行,再ok。

  4.需要注意IE9/10和Opera兩者都支持的,所以不要用類似于elem.onload=elem.onreadystatechange=handler;的代碼,因?yàn)樵贗E9/10和Opera中會(huì)觸發(fā)多次,本來onload里面并沒有各個(gè)狀態(tài)值(都是undefined),不會(huì)觸發(fā)多次,但I(xiàn)E的實(shí)現(xiàn)很詭異,所以,有風(fēng)險(xiǎn)

  5.為了避免IE中多次觸發(fā)回調(diào)函數(shù),應(yīng)該在ok之后移除onreadystatechange事件處理器,保證只觸發(fā)一次

  13.大題:實(shí)現(xiàn)JQuery中的html方法看時(shí)間緊迫,過于緊張了,看到題目的時(shí)候眼睛羅圈了,理解成了實(shí)現(xiàn)JQuery中把字符串轉(zhuǎn)HTML元素的方法,過于復(fù)雜,簡單的寫了思路。交了卷才發(fā)現(xiàn)看錯(cuò)題了。。。

  JQuery中還有比html方法更容易實(shí)現(xiàn)的嗎?代碼如下:

  function html(elem){

  return elem.innerHTML;

  }

  //此處沒有完全實(shí)現(xiàn),因?yàn)镴Q的html方法有三種形式:html(), html(str), html(fun),分別用來獲取/設(shè)置/用函數(shù)設(shè)置innerHTML

  查看了JQuery內(nèi)部,發(fā)現(xiàn)差不多就是這樣實(shí)現(xiàn)的,效果一樣,測試代碼如下:

  var $div = $('#div');

  alert($div.html());

  alert($div[0].innerHTML);

  //在IE中標(biāo)簽都是大寫的,其它瀏覽器中是小寫

  二.是好是壞,都是一場旅行

  被KO是因?yàn)樽约悍e累不夠,比如,如果讀過JQuery源碼,Ajax就能輕松拿下;如果心態(tài)平和,認(rèn)真讀題,最后一題也能瞬間搞定。。。

  在線筆試最大的特點(diǎn)是很難集中精力,網(wǎng)頁很容易分散你的注意力,稍微發(fā)會(huì)兒呆,幾分鐘就沒了

  總結(jié)一下這次筆試的失敗點(diǎn):

  1.時(shí)間安排不合理。中間的小題浪費(fèi)了太多時(shí)間

  2.心里素質(zhì)不夠。過于緊張,好吧,可能是因?yàn)楦呖歼^去很久了,和考試不熟了

  3.基本功不夠扎實(shí)。比如原型,學(xué)習(xí)的時(shí)候太偏重理論了,忽略了這樣簡單實(shí)際的問題

  4.答題順序不對(duì)。先給代碼執(zhí)行結(jié)果的題目繞暈了,這種東西絕對(duì)不能先答

  5.沒洗臉就開始答題了。昨晚和朋友聊到很晚才睡,自作孽。。

  阿里走遠(yuǎn)了,那我的收獲呢?

  1.參加了生平第一次在線筆試

  2.發(fā)現(xiàn)了自身知識(shí)網(wǎng)絡(luò)的漏洞(對(duì)理論爛熟,卻不知道this就是字符串的值)

  3.更清楚地認(rèn)識(shí)了自我,套用前輩的一句話:雖然自認(rèn)為比身邊的人要強(qiáng)一點(diǎn),但離阿里需要的實(shí)習(xí)生還是有一段距離的。。

  題目難嗎?

  說實(shí)話不難,除了畫圓和xhr的題目,其它的應(yīng)該沒什么難點(diǎn)。做的這么差的原因有很多,不單單是沒有經(jīng)驗(yàn)這一條可以搪塞過去的,一句話:底子還是太薄。

  后話

  計(jì)劃3,4月份找實(shí)習(xí),結(jié)束之后繼續(xù)潛心積攢經(jīng)驗(yàn)?纪暧魫炓粫(huì)會(huì)兒就好了,怪不了別人。沒關(guān)系,Tencent我正在來~


【阿里巴巴前端實(shí)習(xí)生在線筆試總結(jié)】相關(guān)文章:

現(xiàn)場筆試與在線筆試的問題11-21

海航在線筆試10-19

阿里巴巴筆試題201502-19

TOM在線網(wǎng)編筆試11-21

筆試需要改成在線考11-19

阿里巴巴校招筆試題11-29

在線筆試題答案補(bǔ)充02-25

阿里巴巴校招筆試題目11-29

Web前端開發(fā)筆試題集錦11-21

卡夫在線測筆試試超給力02-25