阿里巴巴2016校園招聘 前端開發工程師(一)
阿新 • • 發佈:2019-01-29
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
(工廠函式與建構函式)