1.mouseenter与mouseover的区别
mouseenter:
当鼠标从元素的边界之外移入元素的边界之内时,事件被触发。而当鼠标本身在元素边界内时,要触发该事件,必须先将鼠标移出元素边界外,再次移入才能触发。
【区别】—— 是否支持事件冒泡
mouseenter不支持事件冒泡。对应mouseleave。
即:假如给ul元素设置了onmouseenter监听,鼠标划过其子元素li的时候,mouseenter事件不会被触发。
mouseover支持事件冒泡。对应mouseout。
即:当父元素设置了onmouseover监听,鼠标划过其子元素的时候,也会触发mouseover事件。
2.get和post的区别
【通俗答案】
(1)参数传递方式:
get参数通过url传递,post放在request body中。
(2)参数长度限制:
get请求在url中传递的参数是有长度限制的,而post没有。
(3)安全性:
get比post更不安全,因为参数直接暴露在url中,所以不能用来传递敏感信息。
(4)编码方式:
get请求只能进行url编码,而post支持多种编码方式。
(5)是否缓存:
get请求会被浏览器主动cache,而post不会,除非手动设置。
(6)历史记录是否保留参数:
get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留。
【深入答案】
GET和POST本质上都是TCP连接,并无差别。
唯一的区别是:GET产生一个TCP数据包;POST产生两个TCP数据包。
【扩展】
对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据)。而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
(据研究,在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。)
3.cookie和session的区别
(1)cookie是保存在客户端的,用来存储用户信息,也是实现session的一种方式。
(2)session是保存在服务器的,用来存储用户状态。这个数据可以保存在集群、数据库、文件中。
【扩展】
第一次创建Session的时候,服务端会在HTTP协议中告诉客户端,需要在 Cookie 里面记录一个Session ID,以后每次请求把这个会话ID发送到服务器,我就知道你是谁了。
4.cookie、localStorage、sessionStorage的区别
(1)数据的失效时间
cookie:一般由服务器生成,可设置失效时间。如果在浏览器生成,默认是关闭浏览器之后失效。
localStorage:除非被清除,否则永久保存。
sessionStorage:仅在当前会话有效,关闭页面或浏览器后被清除。
(2)存储数据的大小
cookie:4K
localStorage&sessionStorage:5M
(3)通信过程中是否在http头中携带
cookie:每次携带
localStorage&sessionStorage:不携带。只在客户端中保存。
(4)用途
cookie:一般由服务器端生成,用于标识用户身份。
localStorage&sessionStorage:用于浏览器端缓存数据。
5.dependencies和devDependencies的区别
devDependencies里面的插件只用于开发环境,不用于生产环境。
dependencies是需要发布到生产环境的。
npm install 默认安装两种依赖!
【扩展】
(1)只安装dependencies
npm install --production 或 npm install packagename
(2)只安装devDependencies
npm install packagename --dev
6.AMD规范和CommonJS规范的区别
(1)AMD规范使用define、require,定义、导入模块。异步加载,适用于浏览器端。
(2)CommonJS规范使用module.exports、require,定义、导出模块。同步加载,适用于服务器端。
#待续......