前端 2018 届校招笔试面经【百度,阿里,腾讯,阿里文娱,携程,美团,拼多多】 2017年秋季校招前端面经百度,腾讯,网易,华为,乐视等

另附上本人 2017 届面经

2017年秋季校招前端面经(百度,腾讯,网易,华为,乐视等)

百度

1.块级元素和行内元素的区别和举例
2.HTML5的新特性
3.清除浮动的方法
4.BFC清除浮动的原理
5.盒子模型
6.标准模式和兼容模式
7.闭包的定义
8.原型链和作用域链
9.作用域链和闭包的区别
10.Object的原型对象是什么
11.怎么判断一个属性是对象上的属性还是其原型对象上的属性
12.判断一个对象类型为数组
13.网络安全的防御
14.localStorage和cookie的区别
15.前端性能优化
16.层叠上下文
17.手写events模块
18.手写将一个段落里的单词首字母都大写的函数

1.三栏式布局
2.块级元素和行内元素的区别和举例
3.h5语义化理解,新增了哪些标签
4.css有哪些选择器,权重多少
5.get和post区别
6.浏览器缓存机制
7.盒子模型
8.es6有哪些新特性
9.跨域有哪几种实现方式
10.邮箱正则匹配 xx@xx.com/cn
11.实现一个反转字符串的函数
12.段落首字母大写函数
13.观察者模式
14.快速排序怎么实现的

腾讯

1.为什么喜欢学习前端。
2.对MVVM框架的理解。
3.angularJS双向绑定原理。
4.了解过其他的MVVM框架吗。
5.React虚拟DOM原理。
6.单向数据流动原理。
6.html5,css3,ES6新特性。
7.ES6中比较好用的语法。
8.对闭包和作用域的理解。
9.js怎么实现面向对象。
10.实现动画的方式。
11.网站性能优化。
12.如何查看一个网站的性能。
13.网站上线后如何查看网站在客户电脑上的性能。
14.收集用户信息主要收集哪些信息。
15.如何进行跨站请求。
16.如果实现跨域资源共享。
17.网站开发的流程,像是技术选型,人员分工这一类,越详细越好。
18.网络分层分为哪几层。
19.状态码301,302。
20.网络中每一层都有哪些协议。
21.浏览器的缓存分为哪几种。
22.常用的排序算法。
23.Web安全。
24.XSS攻击原理及如何防止。
25.需要屏蔽哪些关键词。
26.了解CDN吗。
28.OPTIONS请求的作用。
29.HTTP协议有哪些内容。
30.HTTP2.0新特性。
31.HTTPS相对于HTTP新增了哪些内容。
32.HTTPS是怎么对传输内容进行加密的。
33.同一个页面里面iframe之间怎么传递信息。
34.网站如何实现离线应用。
35.cookier有4096B(加减1)字节的长度限制,容量是多少?js高阶教程p629
36.js怎么实现表单提交按钮的短期重复点击。
37.ajax的post、get方法,优缺点,实现原理
38.盒模型
39.跨域请求方式
40.浏览器安全问题
41.input鼠标滑过获取内容
42.项目中遇到的困难
43.css带src的标签 <link> <a> <img> <audio> <video>
44.谈谈对闭包的理解
45. var x=5,o={
x:10,
show:function(x){
var x=20;
console.log(this.x);//10
(function show1(){
console.log(this.x);//5
})();
function show2(x){//x是window
console.log(this.x);//5
}
show2(x)
}
}
o.show();
46.typeof(null)==object


47.浏览器缓存的底层实现原理
48.设计模式
49.css框架实现(例如:bootstrap有哪些文件,作用)
50.经常浏览哪些网站(知乎、大漠、阮一峰博客等等,最好说下对公司对应的哪些技术感兴趣)
51.百度前端学院,做了哪些题,怎样实现

阿里

一面
1、自我介绍之后,一个项目一个项目介绍
2、vue的双向绑定
3、vuex数据流动过程
4、ajax应用场景以及优缺点
5、http请求中post和get请求的区别
6、跨域cros和jsonp;jsonp是怎么获取数据的
7、闭包及应用
8、说一下js的继承。es6里面的extent是那种继承方式
9、讲一下let const var
10、讲一下flexbox
11、讲一下float
12、移动端适配
13、promise定义及应用
二面
1、介绍项目,项目中每一个点追着细问
2、https实现
3、跨域等问了几个基础问题
HR
1、聊人生、聊计划、周围觉得厉害的人,影响较大的人、自己的缺点、最近集中面试对你有什么影响
2、建议:增加只是探索欲及主动性会对以后工作有很好的发展。

携程

1.对js闭包的理解
2.对原型的理解
3.js怎么实现继承
4.angular的双向绑定实现
5.其他框架的双向绑定实现
6.对链表和二叉树的理解
7.链表和数组插入的效率
8.快速排序的原理
9.快速排序的时间复杂度和空间复杂度
10.组合和继承的关系,哪个好用
11.组合和继承的例子

//终面
1.项目介绍
2.前端和后端的区别和分工
3.对前端渲染和后端渲染的看法
服务端的计算和渲染效率比较高,但是服务端渲染返回的页面就需要刷新页面,用户体验不好
4.更喜欢哪一种为什么
5.对前后端联合渲染有了解吗
6.为什么技术选型angularjs
7.为什么要重构代码
8.重构代码的流程
9.具体一个控制器是怎么重构的
10.写一个深度拷贝函数
11.怎么完成一个提交订单页面

美团

1、三栏式布局 margin float flexbox
2、行内元素性质 (非替换元素不可设置高度和margin-top,margin-bottom)
3、清除浮动(clear:both overflow:hidden :after{content:' ';height:0;clear:both})
4、angular双向绑定、vue双向绑定(get set)
5、浏览器缓存两种方式
6、屏幕适配布局:rem
7、http状态码
8、不使用缓存方式:在请求路径后面加rand随机数
9、image原生布局为inline
原生属性查看方式:var myDiv=document.getElementsByTagName("img")[0];
console.log(document.defaultView.getComputedStyle(myDiv,null));

总结主要问css和框架原理以及一些浏览器原理


1、自我介绍
2、bootstrap 布局,栅格布局 ,怎么处理不同设备上的差异
3、http 304 状态码是什么意思?其他状态码?HTTPS
4、ajax跨域,有哪些解决方法,举了几个实例让实现跨域,访问子域算不算跨域等等等
5、一两个简单的算法题(记不清了)
6、求数组中最大数
7、事件委托,点击 ul 中的li 弹出li内容,动态添加li
8、原型链继承:    b.prototype =new a() 不对吗? 
9、es6 ,异步原因,promise set map等等
10、事件流 
11、cookie
12、数组去重
13、项目

 拼多多

1.两栏布局,左边固定,要求先加载内容区域,说出多种方法
2.正则对象test方法和exec方法的不同,分别返回什么
3.事件绑定的多种方式,事件监听addEventListener的第三个参数是什么,取值各有什么意思
4.事件代理 阻止事件冒泡(stopPropagation cancelBubble) 阻止事件默认方式
5.js基本数据类型有哪些,写一个函数判断变量的类型
6.详细说说box-sizing属性取值的区别
box-sizing: content-box|border-box|inherit;
宽度和高度分别应用到元素的什么位置。
7.有一段文字,里面有电话号码,电话号码是连续数字,需要把电话号码都替换成*,说出多种做法
var reg=/1[3 4 5 8]\d{9}/g;
1)str.replace(reg,'***********')
2)str.split(reg).join('***********')
3) var str1='';
var lastIndex=0;
while(arr=reg.exec(str)){//arr.index内容所在位置
str1+=str.slice(lastIndex,arr.index)+'***********';
lastIndex=reg.lastIndex;//正则表达式当前所在位置(在选中内容之后)
}
str1+=str.slice(lastIndex);
console.log(str1)
8.Header 头 Set-cookie: http-only 是干什么用的?

二面(2017.08.24,25min)
1.自我介绍
2.讲讲你做过的项目
3.项目中提到了 React,问:React 组件的生命周期?父子组件之间如何通信?子组件之间如何通信?
4.前端性能优化?
5.http 缓存原理?(Expires Cache-Control if-Modified-Since/last-Modified if-None-Match/ETag)
6.JavaScript 的垃圾回收机制?
7.CSS BFC 原理?
8.box-sizing 属性(两种盒子模型)?
9.稳定的排序和不稳定的排序?
快速排序的思路?
堆排序的思路?
10.还有什么想问我的?


1、自我介绍
2、js继承原理
3、闭包,经典闭包问题for循环i,实现指定输出
4、状态码 499 client has closed connection
5、http有哪几种请求的方法,options作用
6、CROS方法实现跨域
1)Access-Control-Allow-Origin
该字段是必须的。它的值要么是请求时Origin字段的值,
要么是一个*,表示接受任意域名的请求。
2)Access-Control-Request-Method
该字段是必须的,用来列出浏览器的CORS请求会用到哪些
HTTP方法,上例是PUT,GET,POST。
3)Access-Control-Expose-Headers
该字段可选。CORS请求时,XMLHttpRequest对象的
getResponseHeader()方法只能拿到6个基本字段:
Cache-Control、Content-Language、Content-Type、
Expires、Last-Modified、Pragma。如果想拿到其他字段,
就必须在Access-Control-Expose-Headers里面指定。
上面的例子指定,getResponseHeader('FooBar')可以返回
FooBar字段的值。
7、项目介绍,微信免登陆怎么实现
8、angular和vue区别
9、手写多路归并排序
10、前端性能优化?具体怎么实现的,用过哪些
11、sessionStorage和localStorage的不同

1、自我介绍
2、项目介绍,vue优点
3、盒子模型,怎样在标准盒子模型中实现IE盒子模型
4、知道哪些排序算法,手写快排,时间复杂度
5、怎样知道一个元素在当前屏幕 getBoundingClientRect
6、实现空心圆,里面白色,外面红色(伪元素、border、radial-gradient)
7、有三个函数,内部实现都是异步的,怎么让这三个函数变成一个同步的,以节省时间
--promise.all

1、自我介绍
2、对拼多多有了解吗,使用过吗,了解工作机制吗
3、为什么想从事电商,为什么选前端开发
4、有没有面过其他公司,有没有拿到其他公司的 Offer?
4、对工资有什么要求吗
5、家庭成员,父母同意去上海吗
6、保研的还是考研的,研究生成绩怎么样
7、有男朋友吗
8、以后生活规划。。。

阿里文娱

一面:
1、==的类型强制转换(0=='0') 3.0===3.0*1
变量提升
变量的命名原则
不同数据类型值的相互转化
2、css3新特性
3、ul列表,设置前三列颜色不同,4-10列斑马线布局,之后元素隐藏
4、元素隐藏方式
1)display:none 2)visibility:hidden 3)background-color=color
4)移出视口 position:absolute left float+margin-left 5)z-index:-1;
5、变量以什么开头问题
6、ES6新特性
7、判断数据类型的方式
1)typeof 2)instanceof 3)Object.prototype.toString.call();
8、MVC MVP MVVM区别
二面和HR(两个面试官一起面的);
9、项目介绍
10、为什么选择前端
11、用js写Ajax
12、状态码
13、界面有大量的图片,怎样去加快加载时间
14、怎样使用缓存
15、两栏式布局实现
16、怎样修改一个单选或复选框的样式
17、跨域的方式
18、浏览器兼容(我说了绑定事件的)
19、怎样去除字符串中空格,正则表达式可以应用于哪些方面
20、压缩js和css文件的原理
21、闭包及应用
22、jquery语法
23、表述能力怎么样,如果没有任何工具,只口述介绍你的项目
24、希望再怎样环境工作,或对工作环境有什么要求
25、最近吵过架吗?赢了还是输了(不知道意图何在)
26、有什么问题问我的吗(一面也有问)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


1==&gt;简述一下src与href的区别 src用于替换当前元素; href用于在当前文档和引用资源之间确立联系 2==&gt;、谈谈以前端角度出发做好SEO需要考虑什么? a.&#160;了解搜
什么是window对象?什么是document对象? window对象代表浏览器中打开的一个窗口。 document对象代表整个html文档。实际上, document对象是window对象的一个属性
1 》vue-router有哪几种导航钩子? 第一种:是全局导航钩子:router.beforeEach(to,from,next) 第二种:&#160;组件内的钩子 beforeRouteEnter
1=&gt;为什么data是一个函数 【理解】 组件的data写成一个函数, 这样每复用一次组件,就会返回一分新的data。 也就说:给每个组件实例创建一个私有的数据空间。 各个组件维护各自的数据。
01 vue3的新特征 1.组合式API. setUp作为组合函数的入口函数 2.Teleport 传送门 3.片段 template下可以有多个标签 4.用于创建自定义渲染器。我的理解是 creat
// var&#160;arr=[1,2,23,23,4,5,5]; // var&#160;newarr=new&#160;Set(arr);&#160;//去重 // console.log([.
摆好姿势 摆好姿势 如何使下面的等式成立 if(a==1&amp;&amp;a==3&amp;a==5){ console.log(666) } var a=[1,3,5] a.join=a.shif
1=&gt;为什么data是一个函数 【理解】 ok 每复用一次组件,就会返回一分新的data。 也就说:【每个组件实例创建】一个【私有】的数据空间。各个组件维护各自的数据。 如果单纯的写成对象形式,
以下是收集一些面试中经常会遇到的经典面试题以及自己面试过程中无法解决的问题,通过对知识的整理以及经验的总结,重新巩固自身的前端基础知识,如有错误或更好的答案,欢迎指正。:) 在网页中,一个元素占有空间
1 Action是不是线程安全的?如果不是 有什么方式可以保证Action的线程安全?如果是,说明原因不是声明局部变量,或者扩展RequestProcessor,让每次都创建一个Action,或者在s
解决js兼容性问题使用 event对象 function eventHandler(event) { event = event || window.event} 获取滚动条属性 var scrollTop = document.documentElment.scrollTop || document.body.scrollTop
浏览器的内核 IE: trident内核,Firefox:gecko内核,Safari:webkit内核,Opera:以前是presto内核,Opera现已改用Google Chrome的Blink内核,Chrome:Blink(基于webkit,Google与Opera Software共同开发) HTML中的Doctype有什么作用 此标签可告知浏览器文档使用哪种HTML或XHTML规范。(重点:告诉浏览器按照何种规范解析页面) div+css的布局较table布局有什么...
如何创建函数第一种(函数声明): function sum1(num1,num2){ return num1+num2; } 第二种(函数表达式): var sum2 = function(num1,num2){ return num1+num2; } 第三种(函数对象方式): var sum3 = new Function("num1","num2","return num1+num2");三种弹窗的单词以及三种弹窗的功能1.alert //弹出对话框并输出一段提示信...
js的垃圾回收机制是什么原理垃圾回收机制有两种方法第一种是标记清除法:当变量进入执行环境时,就标记这个变量为”进入环境”,当变量离开环境的时候,则将其标记为”离开环境”,垃圾收集器在运行的时候会给储存在内存中的所有变量都加上标记,然后它会去掉环境中的标量以及被环境中的变量引用的标记,而在此之后再被加上标记的变量将被视为准备删除的变量,原因是环境中的变量已经无法访问到这些变量了,最后,垃圾收集器完成内存清除工作,销毁那些带标记的值,并回收他们所占用的内存空间 第二种是引用计数法:当声明了一个变量并将
Ajax 是什么? 如何创建一个Ajax?AJAX全称是Asychronous JavaScript And Xml(异步的 JavaScript 和 XML)它的作用是用来实现客户端与服务器端的异步通信效果,实现页面的局部刷新,早期的浏览器并不能原生支持ajax,可以使用隐藏帧(iframe)方式变相实现异步效果,后来的浏览器提供了对ajax的原生支持其主要通过XMLHttpRequest(标准浏览器)、ActiveXObject(IE浏览器)对象实现异步通信效果实现方式(gitee上的案例):
谈一谈let与var和const的区别let为ES6新添加申明变量的命令,它类似于var,但是有以下不同: let命令不存在变量提升,如果在let前使用,会导致报错let暂时性死区的本质,其实还是块级作用域必须“先声明后使用”的性质,let 暂时性死区的原因:var 会变量提升,let 不会。let,const和class声明的全局变量不是全局对象的属性const可以在多个模块间共享const声明的变量与let声明的变量类似,它们的不同之处在于,const声明的变量只可以在声明时赋值,不可
解释一下为何[ ] == ![ ] // ---&gt; true首先看一张图![ ] 是 false原式:[ ] == false根据第八条,false通过tonumber()转换为0原式:[ ] == 0根据第十条,[ ]通过ToPrimitive()转换为' '原式:' ' == 0根据第六条原式:0 == 0尝试实现new function ObjectClass() {//对象 console.log(arguments[...
谈谈对Node的理解Node.js 在浏览器外运行V8 JavaScript引擎,单线程 非阻塞I/O 事件驱动,适应于数据高并发,适合多请求,但不适合高运算,有权限读取操作系统级别的API,npm 仓库,常用框架:Express,koa,Socket.io,AdonisJs,NestJS什么是gulp?作用?机制是什么?gulp是基于node的自动化构建工具作用:1 自动压缩JS文件2 自动压缩CSS文件3 自动合并文件4 自动编译sass5 自动压缩图片6 自动刷
vue和react的区别React严格上只针对MVC的view层,Vue则是MVVM模式virtual(虚拟) DOM不一样,vue会跟踪每一个组件的依赖关系,不需要重新渲染整个组件树。而对于React而言,每当应用的状态被改变时,全部组件都会重新渲染,所以react中会需要shouldComponentUpdate这个生命周期函数方法来进行控制组件写法不一样,React推荐的做法是 JSX + inline style,也就是把HTML和CSS全都写进JavaScript了,即'all in
谈谈对react的理解react是基于v(视图层)层的一款框架,虚拟dom和diff算法react特点:声明式设计高效,其中高效以现在虚拟dom,最大限度减少与dom的交互和diff算法灵活,体现在可以与已知的框架或库很好的配合JSX,是js语法的扩展组件化,构建组件,是代码的更容易得到复用,比较建议在大型项目的开发单项数据,实现单项数流,从而减少代码复用react有哪几个生命周期自己的总结分为三个阶段,初始,运行中,销毁初始化: 执行getDefaultProps钩子