我應聘的是前端工程師。筆試就考了四道前端題,個人覺得基礎倒是考到了,但是前端方面的知識沒有多大聯系,四道題,有三道題都是寫函數,只有一道題貼近了css,自己做的也一般一般。。。
現在將四道題分享給大家,希望對大家的面試有幫助。
1.寫一個函數padstare(string str1,min_lenthg,string str2),然后就是用英文解釋每個參數的意思,看了半天沒看懂,然后看了下他的示例,一下就明白了。
例:padstare(‘5’,3,‘0’)返回的是‘005’;
padstare(‘798’,5,‘0’)返回的是‘00798’;
意思是這樣的,如果字符串str1的長度沒有min_length大,就用str2來填充;
我是這樣答的:
<script>
function padstare(str,min,str_char)
{
var ret=[];
if(str.length>=min)
{
return str;
}
else
{
for(var i=0;i<min-str.length;i++)
{
ret.push(str_char);
}
return ret.join('')+str;
}
}
</script>
這道題應該是做對了的吧。
2.寫一個命令行字符的解析函數。
例:-name lily -age 25 -school "chengdu university" 返回的是[-name lily,-age 25, -school "chengdu university"]
我是這樣答得:
<script>
function getdata(str)
{
var json={};
var gets =str.split('"')[0];
gets =gets.split(' ');
for(var i=0;i<gets.length-1;i++)
{
if(i%2==0)
{
json[gets[i]]=gets[i+1];
}
}
json[gets[gets.length-1]]=str.split('"')[1];
return json;
}
</script>
個人覺得有錯誤,但也是想了很久,才想出這段代碼.......,既要考慮有沒有引號,而且還要考慮到引號中的空格不能被分隔開,我覺得此題答的不好,希望大神能給個正確答案啊,在此謝過!
3.第三題就是唯一的與css有關的題。
div1和div2是DOM結構中的關系為兄弟節點的兩個div元素,分別畫出下列問題的效果圖:
a. .div1 {width: 100px;height: 100px;position: absolute;float: left;}
.div2 {width: 100px;height: 100px;position: absolute;float: right;}
b. .div1 {width: 100px;height: 100px;position: relative;float: left;}
.div2 {width: 100px;height: 100px;position: relative;float: right;}
c. .div1 {width: 100px;height: 100px;position: absolute;float: right;}
.div2 {width: 100px;height: 100px;position: relative;float: left;}
我的答案就不寫了,大家自己想一下這道題的答案吧。
4.設計函數indexof(a,b)判斷字符串a中是否包含字符串b,如果包含返回其位置,不包含返回-1;
我是這么答的:
<script type="text/javascript">
function indexof(str1,str2)
{
var len1=str1.length;
var len2=str2.length;
var ret=[];
if(len1 <len2)
{
return false;
}
else
{
for(var i=0;i<=len1-len2;i++)
{
ret.push(str1.substr(i,len2);
if(ret[i]==str2)
{return i;}
else
{return -1;}
}
}
}
</script>
比如調用indexof('hello','e')應該返回的是2,而實際上返回了-1,這是為什么呢?本來我覺得這道題應該是沒問題的,但是我剛才試了一下,才發現還是有問題的,最后那個if...else...有點問題,因為i=0時,就會判斷了,ret[0]不等於str2,所以會返回-1;而實際上,不應該返回-1,因此這里有問題。希望大家仔細看看代碼,幫我改正一下啊,謝謝了,O(∩_∩)O。
