美文网首页
【面试题】某某和某某的区别

【面试题】某某和某某的区别

作者: 南慕瑶 | 来源:发表于2018-05-15 11:46 被阅读0次

    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,定义、导出模块。同步加载,适用于服务器端。

    #待续......


    相关文章

      网友评论

          本文标题:【面试题】某某和某某的区别

          本文链接:https://www.haomeiwen.com/subject/ahwhdftx.html