前端实习生笔试_2016春网易前端暑期实习生笔试面经(二面已挂)

笔试

选择题忽略

问答题:

用原生JS实现一个接口,能够用Ajax上传文件并显示上传进度,上传完成后接收一个来自服务器的json数据

实现一个三列布局

如何防范CSRF(跨站请求伪造)

请列举减少HTTP请求数和资源文件大小的方法

列举实现跨域请求的方法

一面

一上来先是自我介绍,在这个过程中,面试官会看你的简历

Q:CSS和JS熟悉哪个?

A:JS

Q:浏览器端的JS包含哪几个部分?

A:ECMAScript+DOM

Q:DOM包含哪些对象?

A:Node对象,然后继承下来的有Document,Element,Text,还有想不起来了

Q:JS有哪些基本类型?

A:Number,String,undefined,null,还有引用类型的 //这里我少答了Boolean,然后我以为问的是数据类型

Q:基本类型和引用类型有什么区别?

A:赋值的时候基本类型按值,引用类型按引用,就是基本类型会复制一份,引用类型就是一个新的指针。

函数传参的时候都是按值传递

Q:

var obj = {a : 1}; (function (obj){ obj = {a : 2}; })(obj); //问obj怎么变?

A:外面的obj不变,因为里面等于让局部的obj指向了一个新的对象

//下面两题是因为我简历有写我会C++

Q:C++的引用类型是怎么样的?

A:C++里面的引用相当于一个变量的别名,对引用做操作也会影响该变量

Q:JS和C++有什么区别?

A:面向对象不一样,C++是类式继承,JS是原型链式。C++在函数式方面没有JS来的强。

JS没有C++的一些高级特性,比如模板、泛型。

Q:实现一个左边定宽右边自适应的两列布局,要求使用浮动和flex两种方法

A:

.left { float: left; width: 320px; //这个是面试官给的,面试官画了图 } //下面这段我少写了,然后面试官就问你上面这样能够让右边自适应吗?囧 .right { margin-left: 320px; } //flex憋了很久没写出来。。。

Q:position有哪些属性?各自有什么特点?

A:

static:正常文档流

relative:相对于正常文档流中的位置定位

absolute:相对于第一个不是static的父元素定位

fixed:相对于浏览器定位

Q:画一下标准盒模型

A://感觉这里已经质疑我CSS是不是一点不会了,囧

Q:闭包是什么?有什么用?

A://这里我讲得很不清楚,大致说了就是函数里面套函数,可以保存变量

Q:ES5中,除了函数,什么能够产生作用域?

A:对象?

//然后被回问对象有作用域吗?然后我说对象里面this会变。。。完全把作用域和执行环境弄混了

Q:函数有哪几种调用方式?

A:

直接调用

作为对象的方法调用

apply,call

Q:

var obj = { a : 1, func : function (){ (function (){ a = 2; }(); } }; obj.func();

问a怎么变,匿名函数里的this是什么?怎么改变里面的this?匿名函数不能传参怎么改变obj.a的值?

A: obj.a不变,匿名函数里的this指向全局对象(window),相当于给window加了一个名为a的属性。

(function (){ this.a = 2; }).call(this); //或者apply //或者 func: function (){ var self = this; (function (){ self.a = 2; })(); }

Q:描述一下事件模型?IE的事件模型是怎样的?事件***是什么?事件***中怎么定位实际事件产生的目标?

A:捕获->处于目标->冒泡,IE应该是只有冒泡没有捕获。

事件***就是在父元素上绑定事件来处理,通过event对象的target来定位。

Q:JS动画有哪些实现方法?

A:不太清楚

Q:那你知道还有什么实现动画的方法?

A:CSS3的animation,还有用canvas做的算吗?

Q:你最近有用过什么框架或库?

A:用React Native做安卓,还在学 //然后面试官说那你现在还是主要在原生JS的层面咯

Q:你主要有哪些学习渠道?

A:MDN,Udacity,慕课网

Q:node.js有用过吗?

A:有,主要用一些工具,比如gulp

Q:你有用过什么代码管理工具?

A://然后面试官看到简历上有GitHub就不问了

Q:你还有什么问题吗?

A://这里我问了这个部门主要是面向技术人员还是普通用户开发,回答是都有,还回问了我一句你想做哪方面

最后面试官说你先去休息一下,待会儿还有个二面 //意思是一面居然过了。。。

二面

二面没让自我介绍,直接看到简历上有写项目经历就开问了

Q:说说你做过的项目以及从项目中学到了什么

A://balabala… 感觉很紧张,说得不是很清楚

Q:函数声明和函数表达式有什么区别?

A:函数声明会将那个函数提升到最前面,成为全局函数。函数声明要指定函数名,而函数表达式不用,可以用作匿名函数。

Q:作用域链是什么?

A://说的不是很清楚

Q:面向对象有哪几个特点?

A:继承、多态。。。想不起来了

Q:JS怎么实现继承?

A:将父对象的一个实例赋值给子对象的原型

Q:怎么判断属性来自对象自身还是原型链?

A:hasOwnProperty

Q:双向链表怎么找中点?

A:头尾指针都往中间走,两个指针相等或交替的时候为中点

Q:单向链表呢?

A:先走到尾记下有几个元素,然后再走到一半的地方

//面完查了下可以用快慢指针,一个指针每次走一步,另外个走两步,快指针到尾部时慢指针在中点

Q:上次笔试之后有没有学到什么?

A:了解了下跨域安全和性能相关的问题

Q:那你描述一下跨域安全问题吧

A://balabala…最后发现根本讲不清楚,我还说考完之后去翻了《HTTP权威指南》,囧

Q:怎么实现跨域请求?

A:JSONP,http自定义origin头部

Q:只写origin就够了吗?

A:不太清楚

Q:解释下TCP三次握手

A:客户端发一个SYN,服务器回一个ACK,客户端再回一个ACK

Q:HTTP头中哪些是和缓存相关的?

A:ETag,***-control。。。想不起来了

Q:cookie和session有什么区别?

A:cookie在客户端,session在服务端

Q:浏览器在发送cookie时会发送哪几个部分?

A:不太清楚

Q:那你知道cookie有哪几个组成部分吗?

A:不太清楚

Q:你有用开发者工具看过cookie吗?

A:有

Q:那cookie有哪几个组成部分?

A://已死,我的内心是崩溃的

Q:我没有问题了,你还有什么问题吗?

A://崩溃的我居然问了刚刚那个cookie的问题可以告诉我答案吗。。。估计被定位成伸手党了

面完之后去前台问被告知二面挂了,然后愉快(误)地滚回了学校

总结

一面比较注重基础知识,这方面听到有的面试官建议多看几遍《JavaScript高级程序设计》的,现场也有看到有人随身带着这本书

(我算是粗略地读过三遍左右,也确实大多数上面问到的问题都能在书中找到答案)

二面注重能力考查,无论是学习能力(问项目,问笔试收获),和后端的合作(问很多网络原理),还是编程能力(会问算法,听到有人说问二叉树翻转的)都有涉及。

面试官也明显更高端了,应该是Team Leader级别的

表达能力很重要,有些概念知道却没法清楚地表达出来,影响会很大

不要把话题引向自己不那么有自信的地方(比如上面的跨域问题)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值