阿里巴巴前端實(shí)習(xí)生在線筆試考后經(jīng)驗(yàn)總結(jié)

思而思學(xué)網(wǎng)

寫(xiě)在前面

還是太年輕,第一次在線筆試有些緊張了

一、2015題目

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

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

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

3.單選:?jiǎn)栕址鎿Q結(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ì)影響冒泡,沒(méi)敢選經(jīng)過(guò)測(cè)試,發(fā)現(xiàn)本題根本不存在冒泡(好吧,當(dāng)時(shí)可能沒(méi)睡醒),順便再測(cè)試了一下有冒泡的 情況,發(fā)現(xiàn)不影響冒泡,即便remove掉了,還是會(huì)冒泡

測(cè)試代碼如下:

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

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

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

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

查證之后發(fā)現(xiàn)JS高程中文版135頁(yè)說(shuō)(0, 1),而網(wǎng)上的普遍說(shuō)法是[0, 1),后一種就和C里面的一樣。以前看書(shū)記得js的隨機(jī)數(shù)和C的不一樣。經(jīng)過(guò)測(cè)試發(fā)現(xiàn)書(shū)上是錯(cuò)的,確實(shí)含0不含1?偨Y(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):好奇怪的需求,不如直接用第一種吧

測(cè)試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)還是用代碼?用代碼寫(xiě)了個(gè)小實(shí)現(xiàn),七八分鐘就過(guò)去了,劃不來(lái)

10.大題:給String添加原型方法,實(shí)現(xiàn)簡(jiǎn)單的模版替換考原型和正則表達(dá)式,不會(huì)在原型方法中獲取字符串的值,書(shū)中說(shuō)一般不要給原型加自定義屬性,會(huì)污染環(huán)境,就沒(méi)太在意這方面,只注重了去理解原型,構(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.大題:如何在畫(huà)布上畫(huà)出任意多個(gè)邊界不相交的圓,考慮時(shí)間和空間的平衡后半句感覺(jué)是要寫(xiě)代碼,前半句又不像,最后沒(méi)時(shí)間了,就賣(mài)了個(gè)萌??“最簡(jiǎn)單的方法是畫(huà)同心圓”,好吧,希望能讓改卷的大大心情愉快

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

整理的代碼庫(kù)里收藏了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(){


熱門(mén)推薦

最新文章