分享:你所需要知道的前端面试题和答案
http的请求方法有哪些?
head,get,post,put,delete,option,traceback,connection
Http和Https的区别?
http的默认端口是80,而https的默认端口是443。
http传输的数据是明文的,而https传输的数据是加密的,https会建立信息安全通道,并且会对服务器做验证。在主流搜索引擎中,他们更倾向于抓取https的页面,也就是说https利于seo。
http在建立连接时需要三次握手,断开连接时需要四次挥手。/https也是三次握手和四次挥手/
https需要ca证书认证,其中的s其实指的是ssl。
JS实现继承的几种方式?
原型链继承 构造继承 实例继承 拷贝继承 组合继承 寄生组合继承
详见这位大神的博客,传送门
什么是JS的严格模式?
设立严格模式的目的主要是在一个更加规范的JS环境中,正确的编码运行,为未来的编码做准备。使用严格模式的方法是“‘use strict’”,作用域为当前块级作用域。如果在首行,则是整个文件都将使用严格模式。如果在函数开头,则整个函数作用域为严格模式。相关博客传送门。
什么是Sass和Less?
Sass是基于Ruby的,是在服务器端处理的。而less是基于JavaScript的,是在客户端处理的。sass和less都是css预处理器,也就是说,用一种专门的编程语言,为 CSS 增加了一些编程的特性,将 CSS 作为目标生成文件。
你所知道的浏览器内核?
IE浏览器的内核是trident,FireFox的内核是Gecko,Opera的内核是presto,后来变成了WebKit ,Chrome的内核是blink。
NodeJs的优点是什么?
NodeJs适用于高并发的场景,异步非IO阻塞,不适用于密集计算。传送门
如何进行SEO优化?
尽量使用https协议,尽量将页面静态化,页面title尽量简短,meta标签中的keyword不要太宽泛。页面深度不超过三层,减少页面加载时间。使用Robot.txt,等等。
src和href的区别?
src通常指的是外部资源连接,而href表示的是网络资源,也可建立链接。通常情况下,当页面加载到src连接的资源时,会被阻塞,直到被页面加载进来,这也就是为什么外部script应该放在页面底部而不是head中。
JS中的垃圾回收机制
常见的垃圾回收机制有两种:引用计数和标记清除。Js一般采用的是后者。所谓引用计数是指跟踪记录每个值被引用的次数。当声明了一个变量并将一个引用类型赋值给该变量时,则这个值的引用次数就是1。相反,如果包含对这个值引用的变量又取得了另外一个值,则这个值的引用次数就减1。当这个引用次数变成0时,则说明没有办法再访问这个值(也就是原来的那个引用类型)了。
标记清除是指当对象进入运行环境的时候,为其增加标记。运行结束或者移出运行环境的时候删除标记。最后,垃圾收集器完成内存清除工作。
关于跨域的解决办法?
使用jsonp,缺点是只能使用get请求,并且不能够知道是否请求失败 服务器允许访问,cors跨域资源共享 document.domain 允许跨子域 window.name window.postMessage,html5的新方法
你有没有见过这样的闭包?试试看下面这道题?
var add = function(x){ var sum = 1; var tmp = function(x){ sum = sum + x; return tmp; } tmp.toString = function(){ return sum; } return tmp; } add(10)(2)(3)//输出什么?
结果是6,参考链接
position中的可能取值?
relative,absolute,static,fixed,sticky,initial,inherit,unset….
没想到吧,竟然有八个…
JS异步编程有几种方式?
回调函数 事件监听 发布/订阅 Promise对象
前端性能优化的注意点是什么?
页面加载时:减少http请求(懒加载方式,异步加载),减少css、js的大小,使用CDN加速 页面加载中:将script外部资源放于页面底部,css放于页面顶部。减少重绘和回流。尽量使用css而不是图片。 JS执行时:尽量减少dom操作
rem、em的区别?
rem是相对于根节点或者说是浏览器字体的默认大小而言的。通常情况下1rem = 16px。而em是相对父元素的字体大小,或者最近父元素的字体大小。
了解过ES6和React吗?
加分项
有过移动端开发经验吗?
加分项,基本上是html5的新特性的使用。