阿里2017秋招前端面試筆試題


1、正則表達式

2、布局:static,absolute,relative,sticky

以下代碼,分別給節點 #box 增加如下樣式,問節點 #box 距離 body 的上邊距是多少?

<body style=”margin:0;padding:0”>

<div id=”box” style=”top:10px;margin:20px 10px;”>

</div>

</body>

如果設置 position: static ; 則上邊距為 20px

如果設置 position: relative ; 則上邊距為 30 px

如果設置 position: absolute ; 則上邊距為 30 px

如果設置 position: sticky ; 則滾動起來上邊距為 10 px

position: static ; 則上邊距為(  20 ) px  靜態定位 top值無效
position: relative ; 則上邊距為(  30 ) px 移動的時候會包括margin
position: absolute ; 則上邊距為(  30 ) px 移動的時候會包括margin
position: fixed ; 則上邊距為(  30 ) px  固定定位的margin也會生效  移動的時候也會包括margin
position: sticky ; 則上邊距為(  20 ) px,頁面滾動起來為(10)px,margin會無效;頁面沒滾動的 時候是靜態定位

 

3、實現動態加載一個 JavaScript 資源

var script = document.createElement("script");
        var head = document.getElementsByTagName("head")[0];

        script.type = "text / javascript";
        script.src = " //i.alicdn.com/resource.js";

            // 綁定資源加載成功事件
            script.onreadystatechange = function () {
                // 判斷資源加載狀態是否為加載成功或加載完成
                if (/^(loaded|complete)$/.test(script.readyState)) {
                    script.onreadystatechange = null;
                    
                }
            };

        // 綁定資源加載失敗事件
        script.onerror = function () {
            
        };

        head.insertBefore(script, head.firstChild)
    </script>
參考:https://www.cnblogs.com/croso/p/5294251.html

4、請問何為混合應用 (Hybrid APP) ,與原生 Native 應用相比它的優劣勢。

Hybrid APP 是 Native APP 上結合使用了 Web View (Native APP 的模塊或稱組件,用來加載Web資源),采用了Web 技術的 APP,本質上屬於原生應用(APP外殼)。

優勢:

  1. 兼容性良好,“一次開發,多處運行”,能夠減少原生APP開發在多平台帶來的問題
  2. 代碼移植性高

  3. 開發者社區活躍,能夠及時應用最新適合的Web技術來解決問題,提高用戶體驗

  4. APP更加輕便,內容更新方便,部分更新不用從 APP Store 下載

劣勢:

  1. 性能:相對不如 Native APP 性能良好、體驗流暢
  2. Web技術在APP中操作權限有限,需要APP同步支持

5、前端性能優化(CSS動畫篇)

https://segmentfault.com/a/1190000000490328

濫用硬件加速會導致嚴重性能問題,因為它增加了內存使用,並且它會導致移動端電池壽命減少。  在Blink和WebKit的瀏覽器中,某個元素具有3D或透視變換(perspective transform)的CSS屬性,會讓瀏覽器創建單獨的圖層。

 在Blink和WebKit的瀏覽器中,一當一個節點被設定了透明度的相關過渡效果或動畫時,瀏覽器會將其作為一個單獨的圖層,但很多開發者使用translateZ(0)或者translate3d(0,0,0)去使瀏覽器創建圖層。這種方式可以消除在動畫開始之前的圖層創建時間,使得動畫盡快開始(創建圖層和繪制圖層還是比較慢的),而且不會隨着抗鋸齒而導出突變。不過這種方法需要節制,否則會因為創建過多的圖層導致崩潰

6、

Array對象常用方法中:

不改變原數組:

1、 concat()

  • 連接兩個或多個數組
  • 不改變原數組
  • 返回被連接數組的一個副本

2、join()

  • 把數組中所有元素放入一個字符串
  • 不改變原數組
  • 返回字符串

3、 slice()

  • 從已有的數組中返回選定的元素
  • 不改變原數組
  • 返回一個新數組

4、 toString()

      • 把數組轉為字符串
      • 不改變原數組
      • 返回數組的字符串形

        改變原數組:

        5、 pop()

        • 刪除數組最后一個元素,如果數組為空,則不改變數組,返回undefined
        • 改變原數組
        • 返回被刪除的元素


        6、 push()

        • 向數組末尾添加一個或多個元素
        • 改變原數組
        • 返回新數組的長度

        7、 reverse()

        • 顛倒數組中元素的順序
        • 改變原數組
        • 返回該數組

        8、 shift()

        • 把數組的第一個元素刪除,若空數組,不進行任何操作,返回undefined
        • 改變原數組
        • 返回第一個元素的值

        9、 sort()

        • 對數組元素進行排序(ascii)
        • 改變原數組
        • 返回該數組

        10、 splice()

        • 從數組中添加/刪除項目
        • 改變原數組
        • 返回被刪除的元素

        11、 unshift()

      • http://blog.csdn.net/zqjflash/article/details/50179235

5、HTTP 2.0 協議詳解

http://blog.csdn.net/zqjflash/article/details/50179235

6、

 

請實現方法 parse ,作用如下:

 

1
2
3
4
5
6
7
8
9
var object = {
  b: { c: 4 }, d: [{ e: 5 }, { e: 6 }]
};
console.log( parse(object, ‘b.c’) == 4 )  //true
console.log( parse(object, ‘d[0].e’) == 5 )  //true
console.log( parse(object, ‘d.0.e’) == 5 )  //true
console.log( parse(object, ‘d[1].e’) == 6 )  //true
console.log( parse(object, ‘d.1.e’) == 6 )  //true
console.log( parse(object, ‘f’) == ‘undefined’ )  //true

 

 

 var object = {
    b: { c: 4 }, d: [{ e: 5 }, { e: 6 }]
    };

function parse(obj,string){
  var arr=string.split(".");
  arr.forEach(function(item,index){
   // console.log(index);
   // console.log(item);
   if(!isNaN(item)){
    console.log('232');
    var temp=arr[index-1]+"["+item+"]";
   // console.log(temp);
   // console.log(arr);
    arr.splice(index-1,2,temp);
   // console.log(arr);

  }
});
return eval("obj."+arr.join(".")) || "undefined";
}

console.log(parse(object, 'd.1.e') == 6);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM