分享《去哪兒網》前端筆試題

我應聘的是前端工程師。筆試就考了四道前端題,我的以爲基礎卻是考到了,可是前端方面的知識沒有多大聯繫,四道題,有三道題都是寫函數,只有一道題貼近了css,本身作的也通常通常。。。javascript

如今將四道題分享給你們,但願對你們的面試有幫助。css

1.寫一個函數padstare(string str1,min_lenthg,string str2),而後就是用英文解釋每一個參數的意思,看了半天沒看懂,而後看了下他的示例,一下就明白了。前端

例:padstare(‘5’,3,‘0’)返回的是‘005’;java

  padstare(‘798’,5,‘0’)返回的是‘00798’;面試

  意思是這樣的,若是字符串str1的長度沒有min_length大,就用str2來填充;json

我是這樣答的:前端工程師

<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.寫一個命令行字符的解析函數。spa

   例:-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。

相關文章
相關標籤/搜索