国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

阿里巴巴 2015 暑期實習前端筆試題

zhangxiangliang / 721人閱讀

摘要:前言上周二在阿里暑期實習的前端筆試那里打了個醬油。當不存在時,將會創建它。要求單擊該元素后,提示用戶用戶名不能為空。要求內邊框寬度為,無外邊框。要求在前端實現一個根據一批員工,通過查詢員工信息的功能。其實是考察的內容。

前言

上周二在阿里暑期實習的前端筆試那里打了個醬油。題目說實話都很基礎,但如果之前沒有專門寫過類似的東西,現想現寫的話,一個小時壓力還是有些大的(當然了,大神除外)。
下面把題目分享給大家,歡迎大家一起探討交流,共同進步。
我做了一些,后面的大題肯定有沒寫完的。稍晚些貼上來吧。

題目來了 第一題
  

下列符合規范的 AMD 模塊 ID 有?(單選)
【A】../../foo/Boo/WoO;
【B】foo/boo/Woo;
【C】./foo/boo/woo;
【D】foo/boo/woo.js;

不知道 AMD 是神馬(我的第一反應怎么是做 CPU 和顯卡的那個),當時也沒仔細谷歌。。看著順眼隨便選了個 【C】
后來找了找,...

第二題
  

以下說法正確的有:(單選)
【A】HTML5 規范中不建議在一個頁面中使用多個 h1;
【B】table 標簽是過時的,不建議使用;
【C】Ajax 請求不可能阻塞 UI 線程;
【D】在網頁首次加載的時候,visibility 值為 hidden 的圖片還是會被瀏覽器請求

應該是D吧。。

第三題
javascriptvar a = 0;
function A(){
    this.a = 1; 
    setTimeout(function(){
        this.a = 2;
        try{
            this.b="b";
            throw "";
        }
        catch(e){
            this.b="bb";
        }
    },0);
    this.b="bbb";
}

var aa = new A();

setTimeout(function(){
    console.log(aa.a);
    console.log(window.a);
    console.log(aa.b);
    console.log(window.b)
},0);

選項沒截圖下來,應該分別輸出
1、2、bbb、bb;
考察點應該是setTimeout()的作用域是全局對象,在瀏覽器中,即為 window

第四題
  

下面的說法哪些是正確的:

【A】將打印出 true.

javascriptfunction foo(x){
    x = x || 1;
    console.log(x);
}
foo(2);

【B】將打印出 No

javascriptx=1;
if(x===true){
    console.log("Yes");
}
else{
    console.log("No");
}

【C】將打印出 undefined 2

javascriptvar obj1 = {x:1},
    obj2 = {x:2};
(function(obj2){
    delete obj2.x
})(obj1);
console.log(obj1.x, obj2.x);

【D】會打印出2

javascriptvar x = 1;
setTimeout(function(){
    x = 2;
},0)
console.log(x);

選 B、C

第五題
  

下列哪些 web 安全措施用于防御 csrf 攻擊:
【A】http 響應添加 Content-Security-Policy 頭部
【B】表單提交時需帶上 token 并在服務器端校驗通過才行
【C】前端對用戶輸入的內容進行編碼
【D】每次請求的 token 最好都不一樣
【E】禁用 OPTIONS 方法

Web 安全高大上,當時谷歌了一把,發現 csrf 攻擊好像可以用 token 去對付,就選了有 token 的兩個,B 和 D.

第六題
javascriptvar obj = {
    "1":"a",
    "2":"b",
    "length":2,
    push:Array.prototype.push
}
obj.push("c");
  

瀏覽器執行以上腳本后,說法正確的是:
【A】obj 的 length 屬性會變為 3;
【B】obj 的 length 屬性不會變;
【C】obj3 的值是 c;
【D】obj1 和 2 的值不會發生變化;
【E】obj2 的值是 c;
【F】obj3 的值是 undefined;

選 A、E、F

說一下Array.prototype.push。
js Array 的源碼好像是這個
V8
Array.prototype.push的部分貌似是這個:

javascriptfunction ObservedArrayPush() {
  var n = TO_UINT32(this.length);
  var m = %_ArgumentsLength();

  try {
    BeginPerformSplice(this);
    for (var i = 0; i < m; i++) {
      this[i+n] = %_Arguments(i);
    }
    var new_length = n + m;
    this.length = new_length;
  } finally {
    EndPerformSplice(this);
    EnqueueSpliceRecord(this, n, [], m);
  }

  return new_length;
}

// Appends the arguments to the end of the array and returns the new
// length of the array. See ECMA-262, section 15.4.4.7.
function ArrayPush() {
  CHECK_OBJECT_COERCIBLE(this, "Array.prototype.push");

  if (%IsObserved(this))
    return ObservedArrayPush.apply(this, arguments);

  var array = TO_OBJECT_INLINE(this);
  var n = TO_UINT32(array.length);
  var m = %_ArgumentsLength();

  for (var i = 0; i < m; i++) {
    array[i+n] = %_Arguments(i);
  }

  var new_length = n + m;
  array.length = new_length;
  return new_length;
}

另外還有一些規范性的說明:

MDN

  

push 方法把值添加到數組中。
push 方法有意具有通用性。該方法和 call() 或 apply() 一起使用時,可應用在類似數組的對象上。push 方法根據 length 屬性來決定從哪里開始插入給定的值。如果 length 不能被轉成一個數值,則插入的元素索引為 0,包括 length 不存在時。當 length 不存在時,將會創建它。
唯一的原生類數組(array-like)對象是 Strings,盡管如此,它們并不適用該方法,因為字符串是不可改變的。
當調用該方法時,新的 length 屬性值將被返回。

所以說,push會根據對象length屬性的值去確定插入的位置,即this[i+n] = %_Arguments(i)
所以在原題中obj.length值為2,調用obj.push("c")時,會發生obj[2]="c"的情況,所以最后 obj[2]就變成了"c",而不是原來的"b"
當然了,push方法最后會根據傳入的參數個數多少,即arguments.length來返回new_length,并賦值給obj.length

ECMAScript 5
里面詳細介紹了 push 方法調用時候的步驟。可以研究一下。

第七題
  

輸入你的github、技術博客或微博的網址:

這道題目告訴我們,需要有一個技術博客。

第八題
  

不借助第三方庫,請編碼完成:給一個超鏈接元素綁定一個鼠標單擊的事件。要求單擊該元素后,提示用戶“用戶名不能為空”。注意:請盡可能兼容給多的瀏覽器

考察原生 js 事件綁定,在JavaScript高級程序設計那本書的事件章節有詳細講述。不過話說有空去看看 jQuery 那貨是怎么做的肯定大有幫助。

html我是一個超鏈接
javascriptvar a = document.getElementById("hyper"),
    handler =function(e){
        alert("用戶名不能為空");
    }
if (window.addEventListener){
    a.addEventListener("click",handler,false);
}
else if(window.attachEvent){
    a.attachEvent("onclick",handler);
}
else{
    a["onclick"]=handler;
}
第九題
  

請使用至少兩種方案實現左中右三欄布局,左欄固定寬度 100px,右欄固定寬度 100px,中欄寬度不固定,三欄寬度加起來正好是 100%。

考察 CSS 布局。

第十題
  

使用 HTML、CSS 代碼實現一個九宮格的頁面布局。要求內邊框寬度為 1px,無外邊框。

話說“九宮格”是神馬。。我只能想到是火鍋= =

第十一題
  

請你使用多種方式實現一個 IOS 樣式的開關

就想到了切圖和CSS3的方式

第十二題
  

用 JS 來實現一個函數,用來判斷一個字符串中出現次數最多的字符,并統計出這個次數

codewar 里頭全是這種類似的題,可惜當時做的時候時間太急,寫錯了個地方TAT。代碼略丑,還望各位賜教。

javascript
function judge(str){ var arr = str.toLowerCase().split(""); arr.sort(); var pre = ""; var max = 1; var num = 1; var most = ""; arr.forEach(function(item,index,arr){ if (index === 0){ pre = item; } else{ if (item === pre){ num++; if (max<=num){ max = num; most = item; } } else{ num = 1; } pre = item; } }); console.log("最多的字符為:" + most +";次數為:" + max); } //judge("addqbcabceddqeeffjjjqqqq");
第十三題
  

給定一個http接口,傳入一個員工id,返回員工的詳細信息,接口形式為 http://localhost/query?id=。要求在前端實現一個根據一批員工id,通過 ajax 查詢員工信息的功能。

其實是考察 ajax 的內容。昨天才看的 ajax,sigh。

HTML:

html
Here is the data

客戶端JS:

javascript
var btn = document.getElementById("btn"); btn.onclick = function(){ var idList=[1,2,3,4,5,6,7,8,9,10], ul = document.createElement("ul"); idList.forEach(function(index,item,array){ if (XMLHttpRequest){//IE7 之前會不存在的 var xhr = new XMLHttpRequest(), url = "http://localhost:3030/query?id=" + item; xhr.open("get", url, true); xhr.onreadystatechange = function(){ if (xhr.status >= 200 && xhr.status < 300 || xhr.status == 304){ if (xhr.readyState == 4 ){ ul.innerHTML += "
  • " + item + ":" + xhr.responseText +"
  • "; } } else{ console.log("error"); console.log(xhr.status); } }; xhr.send(null); } }); document.getElementById("data").appendChild(ul); }

    簡單用 Nodejs 和 Express 模塊寫了個服務器,輕拍,只是做測試用的

    javascriptvar express = require("express");
    var app = express();
    
    app.get("/query",function(req,res){
      var url = req.url;
      var id = url.substring(url.indexOf("=")+1);
      res.send(id);
    });
    app.use(express.static(__dirname));
    app.listen(3030);
    

    文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

    轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/111037.html

    相關文章

    • 阿里巴巴 2015 暑期實習前端試題

      摘要:前言上周二在阿里暑期實習的前端筆試那里打了個醬油。當不存在時,將會創建它。要求單擊該元素后,提示用戶用戶名不能為空。要求內邊框寬度為,無外邊框。要求在前端實現一個根據一批員工,通過查詢員工信息的功能。其實是考察的內容。 前言 上周二在阿里暑期實習的前端筆試那里打了個醬油。題目說實話都很基礎,但如果之前沒有專門寫過類似的東西,現想現寫的話,一個小時壓力還是有些大的(當然了,大神除外)。...

      aboutU 評論0 收藏0
    • 2017暑期實習面試總結(前端方向)

      摘要:的暑期實習面試到現在差不多都結束了,算下來自己也投了十幾家簡歷,經歷的差不多十場筆試,現場和電話面試也差不多有五六家公司。阿里三面三面不知道是不是交叉面,不過這次面試面試官說他是北京的之前都是杭州。 2017的暑期實習面試到現在差不多都結束了,算下來自己也投了十幾家簡歷,經歷的差不多十場筆試,現場和電話面試也差不多有五六家公司。雖然最后只拿到兩個offer,所幸是自己期待的公司,下面從...

      worldligang 評論0 收藏0
    • 倆年的這五十篇技術博客,送給不忘初心的你。

      摘要:年開始的前三個學期有篇的產出。從技術角度來看,編程節奏加緊。十年文學,我等你。寫給即將二十歲的你此你非彼你,寫給一直伴我的你。巧合遇到你后的這段光陰,無比的充實與激情飽滿。編程技術獨立的挑戰鼓勵你。希望足以承擔我愛你。 showImg(https://segmentfault.com/img/remote/1460000011417994); 這倆年通過體驗博客園、常駐簡書、甚至搭建靜...

      tuantuan 評論0 收藏0
    • 前端開發-從入門到Offer - 收藏集 - 掘金

      摘要:一些知識點有哪些方法方法前端從入門菜鳥到實踐老司機所需要的資料與指南合集前端掘金前端從入門菜鳥到實踐老司機所需要的資料與指南合集歸屬于筆者的前端入門與最佳實踐。 工欲善其事必先利其器-前端實習簡歷篇 - 掘金 有幸認識很多在大廠工作的學長,在春招正式開始前為我提供很多內部推薦的機會,非常感謝他們對我的幫助。現在就要去北京了,對第一份正式的實習工作也充滿期待,也希望把自己遇到的一些問題和...

      sf_wangchong 評論0 收藏0

    發表評論

    0條評論

    最新活動
    閱讀需要支付1元查看
    <