前端面试常见知识点集合

网易+腾讯+阿里  前端面试经验

2017-05-15  本文已影响285人  Lareina林暖暖

网易面试

通知的是11点面试,我大概十点多就去了。
总共三轮面试,两轮技术面,一轮hr面,前台叫到你的时候,你去看自己在第几组,然后去对应的组面试。面试是1v1的。
去之前我还准备了正装(最后发现根本不用,而且看起来很异类)。
一面,是个男的面试官,一看就比较技术宅。首先,我坐到那里以后,先让我进行一番自我介绍。然后他在网上调出了我的简历,开始提问。我想的起来的一些题目大概罗列一下
1.什么是html语义化?
html语义化是使用一些语义化的标签来定义html的结构。语义化的好处是。1、使html文档 结构更加清晰。2 便于SEO搜索引擎识别文档内容,便于爬虫爬取网页内容以获取网页内容。3.便于一些盲人阅读器得到网页结构信息以便于对网页内容换方式重现。
2.什么是闭包?作用域链?
闭包:这个问题面试经常考。关于这个问题阮一峰的日志写的挺清楚的,有时间的话可以看看红皮书,上面写的更详细。 http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html 作用域链详解:http://www.cnblogs.com/lhb25/archive/2011/09/06/javascript-scope-chain.html
3.解释一下原型链实现继承机制?组合继承?
利用原型让一个引用类型继承另一个引用类型的属性和方法 http://www.ruanyifeng.com/blog/2011/06/designing_ideas_of_inheritance_mechanism_in_javascript.html 详解http://www.108js.com/article/article1/10201.html?id=1092 组合继承:将原型链与借用构造函数的技术组合起来。在原型中定义公用的属性方法,在实例中定义私有的属性方法。实现组合式继承。
4.如何确定原型与实现机制的关系?
(1) Instanceof() (2)isPrototypeOf()
5.H5有什么新特性?
audio、video、article、header、footer、canvas、webstorage
6.WebStorage的了解?
H5的 Webstorage里加入了localStorage和sessionStorage。提供了一种在本地存储用户数据的方式。传统的cookie是用于与服务器交互的和在客户端存储用户数据的方式。他的缺点在于 (1)cookie的个数有限。对于ie6以下每条域名仅支持20条cookie。对于ie7以上以及chrome,FF,每条域名底下最多50条cookie。若个数达到了最大,FF执行的是LRU算法替换旧的页面(2)cookie可携带的数据大小原则上最多4096字节,考虑到兼容性,存储的数据大小为4095字节(3)安全性问题。Cookie采用的明文传输,黑客可以盗取cookie上的内容进行cookie欺骗。 Webstorage是为了解决cookie存储的数据长度有限而生的用于本地存储数据的新方法。 Localstorage 本地永久存储用户数据。 Sessionstorage在一个会话中存储用户数据,当浏览器窗口关闭时,数据会被清理。
7.this指向问题。
//如果作为全局方法被引用的时候指向window、如果作为对象的方法被引用时this指向该对象,匿名函数的this指向window 详细了解this指向: http://web.jobbole.com/85198/ 修改this的指向:http://www.cnblogs.com/pssp/p/5215621.html
8.css3新特性
//border-radius,border-img, 面试官说用过css3的flex吗?我说没有… 深入理解css3新特性:https://www.ibm.com/developerworks/cn/web/1202_zhouxiang_css3/

9.同源策略是什么?如何跨域?
//同源策略是为了安全性考虑的策略。限制同一资源只能在相同域名下才能被访问。 跨域的方法:(1)window.name(2)domain.name(3)ajax+postmessage(4)jsonp (5)使用websocket协议(6)CROS ..... 详细介绍: http://www.ruanyifeng.com/blog/2016/04/same-origin-policy.html
10.jsonp原理?
动态添加一个<script>标签,而script标签的src属性是没有跨域的限制的。http://www.nowamagic.net/librarys/veda/detail/224
11 js的基本类型?引用类型?区别?

//基本类型:number null undefined string boolean
 引用类型:array、object
 区别:基本类型由于需要经常存取,其内存是存在栈里,引用类型的实际存储地址在堆里,指向实际地址的指针存放在栈里。```
11.两个值相同的数组判断相等
var a = [1,2];
var b = [1,2];
console.log(a == b);
console.log(a===b);

考察的是数组是引用类型,其值其实是该内存的地址,所以两个输出都为false```
12.h5以前存在哪些语义化的标签
没答上来,但是后来发现其实很简单,table,strong、h1-h5都属于语义化标签,当时没反应上来。
13.行内元素有哪些?块级元素有哪些?区别是什么?

行内元素:a,b,strong,em,input,i,
块级元素:address,blockquote,caption,dl,dd,dt,h1-h5,p,pre,table,tr,tbody,thead,th,td,tfoot,
标准答案:http://www.w3cwhy.com/css-html/html-hkmarka.html```
14.meta里有哪些属性
```  我当时回答的是我常用的只有<meta charset=”utf-8”>回来查了一下,看到一个博客写的很仔细,发现meta属性还是很有用的。
博客:https://segmentfault.com/a/1190000004279791#articleHeader2```
15.网页上那个小图标是通过什么设置的
``` <link rel="SHORTCUT ICON" href="ico图标文件地址"> ```
16.声明文档类型? 
`DTD(document type definition,文档类型定义)是一系列的语法规则, 用来定义XML或(X)HTML的文件类型。浏览器会使用它来判断文档类型, 决定使用何种协议来解析,以及切换浏览器模式。
DOCTYPE是用来声明文档类型和DTD规范的,一个主要的用途便是文件的合法性验证。 如果文件代码不合法,那么浏览器解析时便会出一些差错。HTML编辑器通常也会在语法高亮的同时提供合法性验证。
DOCTYPE的作用:文档类型与浏览器模式
DOCTYPE声明包括标准版本和一个DTD文件的URI。常用的DOCTYPE声明有以下几种:`
html5: 
`<!DOCTYPE html>`
Html4.01  Strict:
`<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” ”http://www.w3.org/TR/html4/
strict.dtd” >`
html4.01  Transitional
`<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”
“http://www.w3.org/TR/html4/loose.dtd”>`
17.cookie的实现机制?如何获取cookie?
`http://jeffjade.com/2016/10/31/115-summary-of-cookie/`
Hr面
项目怎么做的 做的什么 规模多大  遇到印象最深刻的问题  做过印象最深刻的事情  为什么来杭州,为什么来网易,看你成绩不错,打算保研还是工作,为什么放弃保研?


###腾讯
过了腾讯的笔试,被通知参加腾讯面试,然后一面就挂了23333,因为准备的还是不充分吧,而且心态不是特别好,后来想想有些问题明明能说出来点的可是最后还是没说好。不过也算积累经验了吧。
总结了一下我和我的小伙伴遇到的问题,大致有
1.如何进行网站优化?
2.cdn原理?
3.解释js继承
4.jsonp原理
5.h5里的跨域资源共享
6.ajax原理
7.原型链
8.作用域链
9.服务器客户端获取cookie的方法
10.用过哪些构建工具(回答node.js  )
11.用过哪些压缩包工具(回答的YUI compresser)
12.问我项目中用的算法
   小黄人的避免死锁的算法
   分类算法(可加性核支持向量机,svm,smo))


###阿里面试
一面
1.display none和visibility hidden区别
2.MVC和MVVM模型
3.mvvm的过程?每个模块的功能?与mvc的区别?
4.jq只是一个js库 工具包
5.vue和backbone对比
6.vue贯穿了整个前端的过程  才能称为前端框架
7.js闭包怎么理解?有没有经常用?
8.vue的函数有没有封装?
9.vue的优点?设计原理?
10.vue怎么实现双向绑定?
11.js实现双向绑定?
12.怎么实现js不同模块的封装?
13.css,html的底层的东西?
14.sass,less  
一面面试官反馈觉得基础不错  技术的广度够了 但是技术深度还要好好准备一下
二面主要考察技术深度
1.问项目中实现的最大的难点,怎么解决的
2.在实习过程中如何压缩包装自己的代码
3.完成的最有挑战性的项目
4.事件绑定和事件委托的区别
5.vue双向绑定的原理?用的函数是js内置的还是自己实现的,如果是自己实现的,是如何实现的?
6.看过博客里印象最深刻的文章
7.如果让你来负责一个网站的开发,你怎么做?

###华为
待补充
上一篇下一篇

猜你喜欢

热点阅读