當前位置:萬佳範文網 >

求職簡歷 >筆試題目 >

阿里巴巴秋季校園招聘前端在線筆試題

阿里巴巴秋季校園招聘前端在線筆試題

由於錯過了報名時間,博主昨天才知道原來阿里巴巴秋季校園招聘已經開始了。本來以為沒有機會參加了,但是昨天晚上急急忙忙填寫了一份簡歷,今天居然可以考試,還是有點小激動的,哈哈。

阿里巴巴秋季校園招聘前端在線筆試題

由於今天是親身參與,時間緊急,有些題目博主自己也不記得,或者説有些題目由於能力有限,自己也不會,這裏僅僅提供博主在考試的時候做出來的題目。

1.找出下面優先級相同的選擇器

a. b:after

b.[data-job="frontend"]::first-letter

c. #main::before

d. [type="checkbox"]:checked

e. ul#shop-list

要解這道題,首先需要知道怎麼計算選擇器的優先級,《css實戰手冊》裏面提到過,css為選擇器的權值提供了一個公式:

(1): 一個標籤選擇器值1分

(2):一個類選擇器值10分

(3):屬性選擇器值10分

(3):一個id選擇器值100分

(4):一個內建樣式值1000分

(5):偽元素(如first-line)通常被當做類選擇器對待,值1分

(6):偽類則被當做類對待,值10分

根據上面的規則,我們一個個來分析:

a: img == 1分

b == 10分

:after == 1分 總分1 + 10 + 1 = 12

b: [data-job="frontend"] == 10分

::first-letter == 1分 總分10 + 1 = 11分

c:#main == 100分

::before(偽元素) == 1分 總分100 + 1 == 101分

d:[type="checkbox"] == 10分

:checked == 10分

總分10 + 10 = 20分

e: ul == 1分

#shop-list == 100分

總分100 + 1 == 101分

所以這道題的答案應該是:c e

2. 常用的git操作有

a

r

h

e

對於這裏的關鍵詞“常用”,也是沒有一個明顯的界限的,你要是用的多,就叫常用。下面非別分析:

a: add:將當前工作目錄中更改或者新增的文件加入到git的索引中,加入到git的索引中就表示記入了版本歷史中,這也是提交之前所需要執行的一步。

b: push:將本地commit的代碼更新到遠程版本庫中,例如 “git push origin”就會將本地的代碼更新到名為orgin的遠程版本庫中。

c:mkdir:應該不屬於git常用操作的範圍。

d:fetch:從服務器的倉庫中下載代碼。(與服務器交互,從服務器上下載最新代碼)

e: mv: 重命名一個文件、目錄或者鏈接。

f:merge:把服務器上下載下來的代碼和本地代碼合併。或者進行分支合併。

g:tag: 創建、列出、刪除或者驗證一個標籤對象(使用gpg簽名的)。

所以這一題應該是選:a b c e f g

3.以下哪些是javascript語言typeof可能返回的結果

ng

y

ct

這一道題考驗記憶能力,因為了解typeof的人都知道,這個操作符基本是沒什麼作用的。typeof操作符的作用在javascript裏面有詳細解釋:

"underfined"--如果這個值未定義

“boolean”--如果這個值是布爾值

“string”--如果這個值是字符串

“number”--如果這個值是數值

“object”--如果這個值是對象或者null

"function"--如果這個值是函數

顯而易見的,答案是a c

4. 請寫出個人github地址

5. 請簡述異步加載的js裏有e會有什麼問題

異步加載js的意思是在加載頁面的時候不加載js,也就是在頁面加載完成之後才加載js,但是如果js裏面有e,就會產生一個問題:頁面會被e裏面的內容重寫。

6.<div class='mod-spm'data-spmid='123'>

<divclass='child_a'></div>
<divclass='child_b'></div>
<divclass='child_c'></div>
<divclass='child_d'></div>
</div>
<divclass='mod-spm' data-spmid='456'>
<divclass='child_a'></div>
<divclass='child_b'></div>
<divclass='child_c'></div>
<divclass='child_d'></div>
</div>
<divclass='mod-spm' data-spmid='789'>
<divclass='child_a'></div>
<divclass='child_b'></div>
<divclass='child_c'></div>
<divclass='child_d'></div>
</div>

有dom結構如上,請用原生代碼(禁用jquery作答)實現以下功能:

(a)計算鼠標在mod-spm區域內的停留時長,data-spm不同視為不同區域

(b)儘量減少性能損耗

(c)重複進入計時累加

這題是最浪費時間的,直接上代碼:

1 function showstaytime(obj) {

2 = obj;

3 ltime = 0;

4 rtime = null;

5 ime= teelement('div');

6 }

7 otype = {

8 constructor:showstaytime,

9 init: function() {

10 staytime();

11 ndchild(ime);

12 ntime();

13 etime();

14 },

15 showstaytime: function() {

16 var message = "";

17 message = "停留時間" + ltime + "ms";

18 rtext = message;

19 },

20 begintime: function() {

21 ventlistener("mouseenter",function() {

22 rtime = new date();

23 })

24 },

25 leavetime: function() {

26 var temp = this;

27 ventlistener("mouseleave",function() {

28 ltime += new date()ime() - ime();

29 staytime();

30 })

31 }

32 }

33 var divs = lementsbyclassname('mod-spm');

34 var show1 = new showstaytime(divs[0]);

35 var show2 = new showstaytime(divs[1]);

36 var show3 = new showstaytime(divs[2]);

37 ();

38 ();

39 ();

實現數據打點的函數。

1 function adddot(num) {

2 var temp = new array();

3 for (var i = 0;i < th;i++) {

4 (num[i]);

5 }

6 if (th < 4) {

7 return num;

8 }

9 for (var i = th - 3;i >= 0;i -= 3) {

10 if (i > 0) {

11 ce(i,0,'.');

12 }

13 }

14 return ("");

15 }

10.有字符串var str = "abc345efgabcab",請寫三條js語句分別實現如下三個功能:

1)去掉字符串中的a、b、c字符,形成結果:“345efg”

2)將字符串中的數字用括號括起來,形成結果“abc[3][4][5]efgabcab”

3) 將字符串中的每個數字的值分別乘2,形成結果:“abc6810efgabcab”

這題很顯然是考察正則表達式:

1 var s1 = ace(/[abc]/g,'');

2 var s2 = ace(/[d]/g, function(arg1){return '['+arg1+']'});

3 var s3 = ace(/[d]/g, function(arg1){return arg1*2;});

11從前端工程師的角度如何提高客户體驗.

最後,再次聲明,本人只是本科二年級的學生,所作出的解答只是具有參考性,如有錯誤,歡迎指出~

  • 文章版權屬於文章作者所有,轉載請註明 https://wjfww.com/qiuzhi/bishi/p86e73.html
專題