上海 “东方购物”面试总结

来源:互联网 发布:下载软件的应用 编辑:程序博客网 时间:2024/04/30 08:40

首先我先说一下,这是我到上海的第四天,我在之前也说过自己面试的经历,说实话被打击的是体无完肤了已经。我自己对最近的面试也是准备区学习的态度去面试的,特别是今天的面试让我学到最多的一次,所以我准备把自己的总结给大家写一篇文章分享一下。。。。。。

首先我不方便透漏面试公司的真正地址了,因为公司太大了(也许是我没出息。。。),名字我也没记清楚。我是一个类似于派遣公司那样的派遣过去的,进入园区首先感到很高大上的感觉,我先进去的时候。到了2号楼(一共三座办公楼,面试地点是2号楼)。然后我去前台问一下说我面试的,结果前台好像很不友好(但是我并没有在意,因为我来这几天已经感到了很多白眼了,也许我看起来很土的样子把。。。)对我说你打电话再确认一下有没有你的信息。我给人事打电话结果说我的信息忘了给前台,然后找了一个态度很好的小哥下来借我一下。拿了一张卡,我就去上楼了。。。

上去之后,带我的那个帅哥带我去找了一个领导(有一种吴秀波的感觉,帅气。男人味十足)。我必须强调一下,我个人觉得这个人至少是技术总监以上的职位,因为我远处看到他在给别人开会(通过座位也可以看到是在第一排中间。。)。见到我很友好的说了句你好,然后我礼貌的回复了一句您好。然后把我带到了一间会议室。让我简单来了一个自我介绍,不知道是自己准备不好,还是坐地铁太长时间。张嘴连话都不会说了,三两句就简单说了一下。其实我现在觉得对面试官还是很不礼貌的(心里默念一万句对不起。。。)。然后简单浏览了一下我的简历,给我除了几道面试题,在这里我给大家分享一下(包括笔试和面试问的):

1。很简单的布局


就是上面这个简单的布局;

我的代码是这样的

<body> <header id="header" style="width: 100%;height: 100px"></header> <div id="con" style="width: 100%;height: 100%"> <div id="left" style="float: left;width: 30%;height: 100%"></div> <div id="right" style="float: right;width: 70%;height: 100%"></div> </div></body>
这是我手写的代码,我记的很清楚;但是大神问了我一个问题,你left浮动的话,如果屏幕宽度是1000px,那么左边就是300px,如果里面有一个控件是250px;当屏幕缩小到80% 的时候那么左边就是240px;那么左边不久溢出了吗,这时候你还要用百分比吗?问我解决方案是什么,其实这是一个很简单的问题,但是我当时就是没有回答上来,真不知道当时脑子是怎么想的。。。我在地铁上就想出来解决方案了,应该用媒体查询,因为百分比的话是可以实现的但是太麻烦,用媒体查询是可以实现的而且简单。(@media

2.还是布局


上面这个布局就是首页的布局,我的实现方法是

<body> <header id="header" style="width: 100%;height: 100px">头部内容</header> <div id="con" style="width: 100%;height: 100%"> <div id="center" style="width: 80%;height: 100%; text-align: center;">内容区域</div> </div> <footer id="header" style="width: 100%;height: 300px">尾部内容</footer> </body>
这个的话面试大神问我两边怎么没有内容啊,其实这个也怪我,因为我没有听清楚面试官的意思,我以为是空白呢,如果两边有内容的话,其实也是很简单的,一般像天猫和京东那样的加一个菜单栏,固定到左边,用position:fixed就可以了,然后再设置一下左右边距就可以了。

这两个问题就是很简单的问题了。

3.手写js代码,返回顶部

我是这样写的:

test.onclick = function(){document.body.scrollTop = document.documentElement.scrollTop = 0;}
test是一个button(带有样式的返回顶部按钮);面试官看到之后说就这一句话?其实我之前写过,用这种,也有其他的方法但是我想不起来了,就写了这一个,其实不是很完美的方法,下面一个是我回来自己查资料实现了一下是最好的:

<body style="height:2000px;"><div id="topAnchor"></div><a href="#topAnchor" style="position:fixed;right:0;bottom:0">回到顶部</a></body>
这个是利用锚点实现,简单  而且好写,我当时也想到了,但是面试官让我用js实现,所以我就写了上一个


4.手写js实现分页功能

我这个没写完,因为思路断了,而且面试官进来了,我也没有重新整理思绪,我下面把我当时的思路延续下去再写一遍给大家参考

        $(function(){                        var dqPage = $("#dqPage").text();//得到当前页数            dqPage = parseInt(dqPage);//得到的文本转成int            var pageCount = $("#pageCount").text();//得到总页数            pageCount = parseInt(pageCount);            var i = 1;            i = parseInt(i);            var item="";            var href = "请求地址";            if (pageCount <= 5 ) {//总页数小于五页,则加载所有页                                for (i; i <= pageCount; i++) {                    if (i == dqPage) {                        item += "<span class='disabled'>"+i+"</span>";                     }else{                        item += "<a href='"+href+i+"' >"+i+"</a>";                     }                };                $('#pageBtn').append(item);                return;            }else if (pageCount > 5) {//总页数大于五页,则加载五页                if (dqPage < 5) {//当前页小于5,加载1-5页                    for (i; i <= 5; i++) {                        if (i == dqPage) {                            item += "<span class='disabled'>"+i+"</span>";                         }else{                            item += "<a href='"+href+i+"' >"+i+"</a>";                         }                    };                    if (dqPage <= pageCount-2) {//最后一页追加“...”代表省略的页                        item += "<span> . . . </span>";                    }                    $('#pageBtn').append(item);                    return;                }else if (dqPage >= 5) {//当前页大于5页                    for (i; i <= 2; i++) {//1,2页码始终显示                        item += "<a href='"+href+i+"' >"+i+"</a>";                     }                    item += "<span> . . . </span>";//2页码后面用...代替部分未显示的页码                    if (dqPage+1 == pageCount) {//当前页+1等于总页码                        for(i = dqPage-1; i <= pageCount; i++){//“...”后面跟三个页码当前页居中显示                            if (i == dqPage) {                                item += "<span class='disabled'>"+i+"</span>";                             }else{                                item += "<a href='"+href+i+"' >"+i+"</a>";                             }                        }                    }else if (dqPage == pageCount) {//当前页数等于总页数则是最后一页页码显示在最后                        for(i = dqPage-2; i <= pageCount; i++){//...后面跟三个页码当前页居中显示                            if (i == dqPage) {                                item += "<span class='disabled'>"+i+"</span>";                             }else{                                item += "<a href='"+href+i+"' >"+i+"</a>";                             }                        }                    }else{//当前页小于总页数,则最后一页后面跟...                        for(i = dqPage-1; i <= dqPage+1; i++){//dqPage+1页后面...                            if (i == dqPage) {                                item += "<span class='disabled'>"+i+"</span>";                             }else{                                item += "<a href='"+href+i+"' >"+i+"</a>";                             }                        }                        item += "<span> . . . </span>";                    }                    $('#pageBtn').append(item);                    return;                }            }                                });

这个我回来其实也没有完全实现,因为看似简单的一个面试题目,其实逻辑性很强的,需要考虑的东西特别多,当时我第一次进这个公司感觉也很紧张,所以思绪乱了,其实大家再开发中,很少有自己写分页的  都是有写好的框架。但是这些都是考察我们对基础的掌握程度和逻辑性。还是很重要的。。。。我真想把我现在写的给面试官再看一次,让他再给我一次机会。。。。。

5.数组查重怎么做

这个问题我当场都懵逼了,我真的想说我也会,但是当时不知道为啥,脑子一片空白。应该是我当时脑供血不足。。。哈哈  不找借口了  还是自己的综合素质不强,我回来除了公司还在想这个问题,因为再很早之前我就写过这个代码,我当时思路是这样的,先var一个新数组newArr,然后去除第一个元素,跟数组里面的其他元素比较,一样的去除,不一样的留下,把比较的元素push到newArr里面,以此类推,其他的也都这样处理,得到newArr数组就是我们最终的查完重的数组了,代码我也写了一边是这样的:

function uniq(array){    var newArr= []; //一个新的临时数组    for(var i = 0; i < array.length; i++){        if(newArr.indexOf(array[i]) == -1){            newArr.push(array[i]);        }    }    return newArr;}var aa = [1,2,2,4,9,6,7,5,2,3,5,6,5];console.log(uniq(aa));