1. 程式人生 > >阿里巴巴2016校園招聘 前端開發工程師(一)

阿里巴巴2016校園招聘 前端開發工程師(一)

1.實現如下頁面佈局。核心區域左側自適應,右側固定寬度200px

這裡寫圖片描述

html結構:

<body>
    <header class="header clearf">
        <div class="logo"></div>
        <span class="username">使用者名稱</span>
    </header>
    <aside class="aside"></aside>
    <article class="content"></article
>
<footer class="footer"></footer> </body>

css程式碼:

html,body,div,article,aside,footer,header{
            margin:0;
            padding:0;
        }
        .clearf{
            zoom:1;/*ie6/7清除浮動*/
        }
        .clearf:after{
            content:'';
            display: block
; clear:both; height:0; visibility: 0; }
.header{ margin-bottom:10px; position: relative; background: #f5f5f5; } .logo{ margin:10px; width: 100px; height: 100px; background
: #f00
; float:left; }
.username{ position: absolute; right:10px; bottom:10px; } .aside{ width: 200px; float:right; height:400px; background: #ff0; } .content{ margin-right:220px; height:400px; background: #f0f; } .footer{ margin-top: 10px; }

2.請實現一個fibonacci函式,要求其引數和返回值如下所示:

/**
 *@desc: fibonacci
 *@param: count {Number}
 *@return: result {Number} 第count個fibonacci值,計數從0開始
  fibonacci數列為:[1, 1, 2, 3, 5, 8, 13, 21, 34 …]
  則getNthFibonacci(0)返回值為1
  則getNthFibonacci(4)返回值為5
 */
function getNthFibonacci(count) {
}

答案:
此題應該避免使用遞迴的方法,因為當count較大時,遞迴的方法耗時較長。
故考慮使用迭代法,可以使用陣列記錄每一項。
但此題只需要用到前面兩項,從節約空間的角度講不需要開闢陣列。

JS程式碼:

function getNthFibonacci(n){
            if(n==0||n==1) return 1;
            var first = 1;
            var second = 1;
            var third = 0;
            for(var i=2;i<=n;i++){
                third = first + second;
                first = second;
                second = third;
            }
            return third;
        }

3.填寫內容讓下面程式碼支援a.name = “name1”; b.name = “name2”:

function obj(name){
    (1)
}
obj.(2) = "name2";
var a = obj("name1");
var b = new obj;

答案:

1. if(name) this.name = name;
2. prototype.name

(工廠函式與建構函式)