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

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

首先我不方便透漏面试公司的真正地址了,因为公司太大了(也许是我没出息。。。),名字我也没记清楚。我是一个类似于派遣公司那样的派遣过去的,进入园区首先感到很高大上的感觉,我先进去的时候。到了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));




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值