1、原生js给button绑定多个点击事件
var btn = document.getElementById("btn"); btn.addEventListener("click",function(){ console.log('第一个事件') }) btn.addEventListener("click",function(){ console.log('第二个事件') })
2、null和undefined的区别
null类型代表空值,代表一个空对象指针,使用typeof运算得到object,所以可以认为它是一个特殊的对象值;
undefined类型,当声明了一个变量未初始化时,得到的就是undefined;undefined是访问一个未初始化的变量时返回的值,而null时访问一个未存在的对象时返回的值。因此,可以把undefined看作是空的变量,而null看作是空的对象。
3、http和https的区别
http超文本传输协议是互联网上应用最广泛的一种协议。https是以安全为目标的http通道,是http的安全版。https需要到CA申请证书。http信息是明文传输,https则是具有安全性的ssl加密传输协议。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者的端口是80,后者的端口是443。
http的连接很简单,是无状态的。Https协议是由SSL+Http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。(无状态的意思是其数据包的发送、传输和接收都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息。
4、cookies、sessionStroage、localStroage的区别
如果不在浏览器中设置过期时间,cookie被保存在内存中,生命周期随浏览器的关闭而结束,这种cookie简称会话cookie。如果在浏览器中设置了cookie的过期时间,cookie被保存在硬盘中,关闭浏览器后,cookie数据仍然存在,直到过期时间结束才消失。单个cookie保存的数据不能超过4kb。
在HTML5中,重新提供了一种在客户端本地保存数据的功能,它就是Web Storage。Web Storage又分为两种:
sessionStorage:将数据保存在session对象中。所谓session,是指用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。session对象可以用来保存在这段时间内所要求保存的任何数据。
localStorage:将数据保存在客户端本地的硬件设备(通常指硬盘,也可以是其他硬件设备)中,即使浏览器被关闭了,该数据仍然存在,下次打开浏览器访问网站时仍然可以继续使用。
5、px和rem、em的区别
px实际上就是css中定义的像素,利用px设置字体大小及元素宽高等比较稳定和精确。
em表示相对尺寸,其相对于当前对象内文本的font-size。
rem也表示相对尺寸,其参考对象为根元素<html>的font-size,因此只需要确定这一个font-size。
6、常见浏览器内核
7、mvvm和mvc的理解
8、什么是闭包,怎么使用闭包
9、js事件冒泡和js事件代理
10、为什么虚拟dom会提升性能