分享《去哪儿网》前端笔试题

我应聘的是前端工程师。笔试就考了四道前端题,我的以为基础却是考到了,可是前端方面的知识没有多大联系,四道题,有三道题都是写函数,只有一道题贴近了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。

相关文章
相关标签/搜索