web前端开发面试被虐篇(一)

地点:北京

职位:前端开发工程师

要求:达到中级开发,JS基础足够扎实,css基础扎实,要求纯手写代码

面试过程:

进门一个面相老成的大叔递给我一份题,说别的都不好使先做题看看水平,说话语气很温和明显是面试过太多人了拿题直奔会议室 开始笔试答题 下面是部分笔试题:

 var A=function(name){if(name)this.name=name;}
 var B=function(name){this.name=name;}
 var C=function(name){this.name=name||"jon"};

 A.prototype.name="tom";
  B.prototype.name="tom";
   C.prototype.name="tom";

   //求下面三个输出值
   alert(new A().name);
   alert(new B().name);
   alert(new C().name);

解题思路.这道题考的是原型链掌握程度,首先A函数里面判断如果name有值的话 this.name=name 当然name有值了!!是undefined ! 重新赋值name this只当前作用域 查询当前原型链name属性 tom 所以第一项是tom.

第二个不难理解的是undefined,第三个只是一个运算符问题 也不难name 是undefined 肯定选择后面的jon了..所以答案是 tom undefind jon

var test=(function(i){

  return function(){

      alert(i*5);
  }
})(5);

test(2);//值是多少?

不要被这题迷惑了,考点 自执行函数,形参与实参,默认参数是5,所以test传值2根本就没接收,所以答案是25

var a="00";
(function(){
    alert(a);//求a的输出是多少
    var a="01";
})();

解题思路:自执行函数,全局变量a,局部变量a 加载自执行函数的时候会遍历上下文这种方式叫执行上下文,参考大叔这篇博文:http://www.cnblogs.com/TomXu/archive/2012/01/13/2308101.html

执行上下文环境中包含a变量 但是未加载 程序开始执行alert 所以当前 a=undefined,如果当局部变量a被删除之后执行上下文结果并没有变量声明程序索引到全局变量a这时候a输出"00",相当于程序正常加载,但并非如此(个人理解如有纰漏请指出)

简述栈与队列并实现简单栈或者队列.

这道题比较简单,考理论掌握数据结构.  1.区别,栈,先进后出,队列,先进先出2.对于插入和删除操作限定3.数据读取速度不同

栈(Stack)是限定只能在表的一端进行插入和删除操作的线性表。队列(Queue)是限定只能在表的一端进行插入和在另一端进行删除操作的线性表。

简述 css hack 理解.

CSS hack是通过在CSS样式中加入一些特殊的符号,让不同的浏览器识别不同的符号(什么样的浏览器识别什么样的符号是有标准的,CSS hack就是让你记住这个标准),以达到应用不同的CSS样式的目的,比如.kwstu{width:300px;_width:200px;},一般浏览器会先给元素使用width:300px;的样式,紧接着后面还有个_width:200px;由于下划线_width只有IE6可以识别,所以此样式在IE6中实际设置对象的宽度为200px,后面的把前面的给覆盖了,而其他浏览器不识别_width不会执行_width:200px;这句样式,所以在其他浏览器中设置对象的宽度就是300px;

简述冒泡排序与快速排序并简单实现:

原理:

1.冒泡排序:双循环嵌套,前后数据相比较较小的放在前面,大的放在后面.

2.快速排序,需要中间容器 吧数组分为两组分别比较 大的放在大数组中小的放在小数组中之后合并两个数组即可

冒泡排序:

  随便从数组中拿一位数和后一位比较,如果是想从小到大排序,那么就把小的那一位放到前面,大的放在后面,简单来说就是交换它们的位置,如此反复的交换位置就可以得到排序的效果。

var arr = [3,1,4,2,5,21,6,15,63];

function sortA(arr){
    for(var i=0;i<arr.length-1;i++){
        for(var j=i+1;j<arr.length;j++){
                      //获取第一个值和后一个值比较
            var cur = arr[i];
            if(cur>arr[j]){
                      // 因为需要交换值,所以会把后一个值替换,我们要先保存下来
                var index = arr[j];
                        // 交换值
                arr[j] = cur;
                arr[i] = index;
            }
        }
    }
    return arr;
}
//因为一次循环只能交换一个最大的值,所以需要再套一层for循环。

快速排序:

   从数组的中间拿一个值,然后通过这个值挨个和数组里面的值进行比较,如果大于的放一边,小于的放一边,然后把这些合并,再进行比较,如此反复即可。

var arr = [3,1,4,2,5,21,6,15,63];
function sortA(arr){
    // 如果只有一位,就没有必要比较
    if(arr.length<=1){
        return arr;
    }
    // 获取中间值的索引
    var len = Math.floor(arr.length/2);
    // 截取中间值
    var cur = arr.splice(len,1);
    // 小于中间值放这里面
    var left = [];
    // 大于的放着里面
    var right = [];
    for(var i=0;i<arr.length;i++){
        // 判断是否大于
        if(cur>arr[i]){
            left.push(arr[i]);
        }else{
            right.push(arr[i]);
        }
    }
    // 通过递归,上一轮比较好的数组合并,并且再次进行比较。
    return sortA(left).concat(cur,sortA(right));
}

暂时只记得这些题目,总之当时面试答的比较插件没能进入二面,再接再厉~

心得:基础特别重要,答完这些题之后感觉很多很多题在javascript高级编程这本书里都有答案,面试官评价基础不够扎实,理解不够充分答案莫容量可不够坚定,所带作品过于入门(个人充值缴费系统 含收银台等等),注意这里用的是入门..而不是初级,一次惨痛的面试经历 回家啃书 继续加油

时间: 2024-08-13 08:49:25

web前端开发面试被虐篇(一)的相关文章

2015腾讯暑期实习生 Web前端开发 面试经历

[2015腾讯暑期实习生 Web前端开发 面试经历] 好吧,首先声明,我被刷了,应该是跪在二面 微信查到的面试状态一直呈现复试中 .. 整整四天了.. 看来是没希望了 不过也是一次经历,记录一下还是可以的 .. 零.TST内推 TST还是有必要提一下,早早就随大家把简历交上去内推了 很多人都有评级了,各种评级都有 但我 从头到尾都查不到评级..是漏了..还是简历太渣看不上... 还是怎么回事..衰.. 一.笔试 笔试是在3月29号在华工考的,腾讯的笔试一直都那么回事,技术岗的都同样一份试题. 试

网易游戏WEB前端开发面试经历

过年后开始各大公司春招了,这时候学生涌入市场,特别是大型的互联网公司更受众多学生的欢迎.然后我在工作之余也投了一下简历,毕竟那么多大公司都在招,错过也不好.就算不进,积累下面经还是不错的,然后知道自己有哪些不足,还有时间弥补. 没想到投了一两天就收到网易游戏的web前端实习的面试,然后只有一两天准备,我也就赶忙看了下面经,复习下javascript.css.html的基础.不过面试过程还是被虐了.唉 网易的环境很好,一进去就有一种很香的淡淡的味道,然后在今天那么热的情况下,开着空调,总是能让浮躁

腾讯WEB前端开发面试经历,一面二面HR面,面面不到!

[一面]~=110分钟  2014/09/24 11:20  星期三 进门静坐30分钟做题. 填空题+大题+问答题 >>填空题何时接触电脑 何时接触前端运算符 字符串处理        延时 display        position        XMLHttpRequest        正则Jquery绑定事件        cookie >>大题BOM浏览器信息浏览器兼容性举例闭包作用与举例新闻ul列表,插入3个,获取index全文单词首字母大写ajax过程 >&

Web 前端开发面试中常遇的问题【持续更新】

XHTML与HTML的区别: XHTML必须合理的结束 XHTML必须关闭 XHTML标签名必须用小写字母 XHTML必须有根元素 XHTML中,需要给所有属性赋一个值 XHTML中‘<’,‘>’,&等用编码表示 XHTML中,不要在注释中写—— 图片必须有说明文字,及alt属性必须有 用id属性代替name属性 2.HTML5与HTML4的区别 HTML5简化了语法,HTML 4中文档格式定义为:<!DOCTYPE HTML PUBLIC "-//W3C//DTD H

[转]关于Web前端开发,附:(百度web前端笔试面试题目)

关于Web前端及百度web前端笔试面试题目 随着各大互联网公司设立了Web前端开发工程师.设计工程师等职位,web前端越来越得到互联网企业的认可.而且其重视程度与地位也随着浏览器 端的富客户端的体现而日益提高. 眼前对HTML5的未来和走向,业内的预测是会和Flash.Silverlight等相结合,从而取代传统的客户端应用程序.而实现这个目标的客户端核 心工作是有Web前端工程师来完成的. 从另一个角度,对于web产品来说,交互和用户体验是产品的第一价值,这部分价值的体现就是在web前端.可以

Web前端开发笔试&amp;面试_01(mi:)

—— (al_me16041719002000) begin—— 1.(单选)下面哪个方法是String对象和Array对象都有的? A.splice B.split C.replace D.concat E.sort F.join 2.(单选)以下说法错误的是? A.IE8支持 :before B.IE8支持 :after C.IE8支持 :first-child D.IE8支持 :last-child E.IE8支持 ::before F. IE8支持 ::after 3.(单选)以下框架采

Web前端开发第一篇

本人在学习和开发web前端中得到的一些javascript.jquery.html等等效果可能对大家有用和对大家有帮助的东西一起分享给大家. 这些效果也许很多人都已经有了,不过我还是积累下,分享给一起学习Web前端的人员和刚刚开始学习Web前端的人员, 希望能帮助大家. 我的语言组织能力比较差,还有我的技术水平也是比较差的,有些东西可能理解的不对,大神们可以指点出来我加以改正,希望大家见谅! Web前端开发第一篇

WEB前端开发 辨析类 面试真题 大集锦

WEB前端开发 辨析类 面试真题 大集锦 HTML5学堂-码匠:面试里最常出现的问题句式大概就是"说说XXX和XXX的区别""谈谈XXX和XXX的不同"了吧~!一波波的辨析题正在袭来,快快开启防御,杀出重围,来一场绝地反击! 僵尸,啊,不对,辨析三连发! 扫描了众多的面试题,发现--额--各个技术之间的辨析真的是如僵尸一般,一波一波的~ 相信不少人都在面试当中遇到过各类的辨析题,面试的画风大概是这样的 -- 面试官:strong.em.b.i的区别是什么? 面试官:

记一次web前端开发的电话面试

前几天经历了一次电话面试,因为我是应届生,题目难度不大,只是考察个人的基础知识的掌握程度.都怪我没有及时记下来~~题目不是很全.下面是我记得的,请看题. 问:png与jpg的区别是什么? 问:png8与png24的区别是什么?png的交错与不交错分别是什么意思? 问:闭包是什么?举个例子说明? 问:匿名函数是什么?举个例子说说它的用法? 问:根据什么知道页面内容是缓存着的? 问:浏览器的状态码的问题,302是什么意思? 问:无缝滚动用jquery的时候是用什么方法实现? 问:javascript