1、本地存储localStorage、sessionStorage和cookie的区别
答: (1)、请求不同:cookie数据始终在同源的http请求中携带(即使不需要),即在客户端和服务端传递,sessionStorage和localStorage仅在本地保存,不会发送给服务器
(2)、数据大小不同:cookie的数据大小不能超过4k,因为每次发起请求都会携带cookie,sessionStorage和localStorage也有大小限制,但比cookie大得多,约5M
(3)、有效时间不同:cookie可以设置有效期,在有效期内一直可用,即使浏览器被关闭,sessionStorage有效期是浏览器未被关闭之前,一旦关闭浏览器,sessionStorage的数据也会被清除,localStorage永久有效,浏览器关闭也会依旧存在,除非手动删除
2、==和===的区别
答: ==表示相等,只比较内容
===表示全等,比较数据类型和内容
3、回流和重绘
答: (1)、回流:当渲染树中部分或者全部元素的尺寸、结构或属性发送变化时,浏览器会重新渲染部分或者全部文档的过程就称为回流
(2)、重绘:当页面中某些元素的样式发生变化,但是不会影响其在文档流中的位置时,浏览器就会对元素进行重新绘制,这个过程就是重绘
(3)、回流一定引起重绘,重绘不会引起回流
4、判断数据类型方式
答:(1)、typeof:一般用来判断基本数据类型,返回他的类型,但判断null是返回object,判断复杂数据类型的时候,只有判断function时会识别,其他复杂数据类型均返回object
(2)、instanceof:一般用来判断复杂数据类型,根据原型链中的查找判断当前数据的原型对象是否存在来返回布尔类型
(3)、object.prototype.toString():返回统一的格式[object xxx]
5、ES6新特性
答: (1)、let、const
(2)、解构赋值
(3)、箭头函数 ()=>{}
(4)、模板字符串 ``
(5)、扩展运算符 ...
(6)、数组方法:map、filter、some等
(7)、类:class关键字
(8)、promise
(9)、函数参数默认值 fn(a = 1){}
(10)、对象属性简写 let a = 1;let obj = {a}
(11)、模块化:import 、export default
6、如何检查内存泄漏?
答:可以使用谷歌的devtools来识别内存图和一些内存泄漏,主要有两点:
(1)、性能分析器可视化 内存消耗
(2)、识别分离的DOM节点
7、cookie包含哪些属性?
答:除了名称和值外,cookie还包括了很多属性,例如:
(1)、Domain cookie的域。如果设成test.come,那么子域名都可以使用test.com的cookie
(2)、Path 如果设成/path/,则只有路径为/path/的页面可以访问该cookie。如果设为/,则本域名下的所有页面都可以访问该cookie
(3)、Expires属性来设置cookie过期时间。不设置的话默认值是session,意思是跟sessionStorage一样,浏览器关闭后失效。除此之外,它还可以设置过去的时间来删除cookie
(4)、Secure为cookie的安全属性,若设置为true,则浏览器只会在HTTPS和SSL等安全协议中传输此cookie,不会在不安全的HTTP协议中传输此cookie
(5)、HTTPOnly属性是cookie的扩展功能,它使得JS脚本无法获得cookie。其主要目的是防止XSS对cookie的信息窃取。若此属性为true,则只有在http请求头中会带有cookie的信息,而不能通过document.cookie来访问此cookie
8、ES6 Module和commonjs的区别
答: (1)、ES6 Module是值的引入,commonjs是值的拷贝
(2)、ES6 Module是编译的时候输出接口,commonjs是运行加载
(3)、ES6 Module是异步加载,commonjs是同步加载
9、打开两个标签页是进程还是线程?
答:浏览器打开了两个标签页是进程。每个标签页都会在浏览器中独立运行,有自己的渲染进程,JS引擎等
10、浏览器内核是什么?包含什么?常见的有哪些?
答:(1)、什么是内核?
简单来说,浏览器内核就是浏览器的核心,也称”渲染引擎“。用来解释网页语法并渲染到网页上,浏览器内核决定了浏览器该如何显示网页以及页面的格式信息
(2)、包含什么?
渲染引擎:负责获取网页的内容显示,不同的浏览器对内核对网页的解析渲染也不同
JS引擎:负责解析JS语言,执行JS 语言来实现网页的动态效果
起初渲染引擎和JS引擎没有区分很明确,后来JS引擎越来越独立,内核就倾向于指渲染引擎
(3)、常见的有哪些?
Trident内核:(国产的绝大部分浏览器)IE、360、搜狗
Gecko内核:Firefox、NetScape6及以上
Presto内核:Opera7及以上
Webkit内核:(国产大部分双核浏览器其中一核)Safari、chorme