由於錯過了報名時間,博主昨天才知道原來阿里巴巴秋季校園招聘已經開始了。本來以為沒有機會參加了,但是昨天晚上急急忙忙填寫了一份簡歷,今天居然可以考試,還是有點小激動的,哈哈。
由於今天是親身參與,時間緊急,有些題目博主自己也不記得,或者說有些題目由於能力有限,自己也不會,這裡僅僅提供博主在考試的時候做出來的題目。
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從前端工程師的角度如何提高客戶體驗.
最後,再次宣告,本人只是本科二年級的學生,所作出的解答只是具有參考性,如有錯誤,歡迎指出~