1,什么是事件代理且描述事件代理的原理及为什么要用事件代理?
事件委托也叫事件代理。利用事件冒泡,让自己的触发的事件,让父元素代替执行。
它可以使 (1)性能更优 (2)动态创建的DOM依然具有事件
2,移动端1px问题,为什么会有?如何解决?
因为在移动端,由于屏幕分辨率的不同,现在分为一倍屏,二倍屏,三倍屏。在不同的分辨率上,有可能1像素,被渲染成两个像素,或者三个像素点,所有实际写代码时,写border:1px solid red;时,1px可能被渲染为2px或者3px
1px的解决方案
1.先使用伪类元素实现边框效果,然后通过媒体查询来操控transform: scale来适配不同分辨率
2.使用border-image来代替border
3.使用viewport +rem
3,解释jsonp的原理
ajax请求受同源策略影响,不允许进行跨域请求,而script标签src属性中的链接却可以访问跨域的js脚本,利用这个特性,服务端不再返回JSON格式的数据,而是返回一段调用某个函数的js代码,在src中进行了调用,这样实现了跨域。
就是利用浏览器可以动态地插入一段js并执行的特点完成的。
4,在工作中你是如何优化自己的代码的?
全组件化
模块化封装
代码重用
避免全局变量(命名空间,封闭空间,模块化 mvc..)
拆分函数避免函数过于臃肿
注释
5,axios是什么?如何使用?描述其实现登录的流程
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。
1.支持promise
2.提供了一些并发请求的方法
3.提供拦截器
4.可以实例化,进行基础配置
5.提供支持
登录基本流程描述
客户端用户输入账户密码通过API传递给后台,后台收到账户和密码以后就会和数据库中的进行比对,如果都正确,那么就更新用户的状态为已登录。
axios登录和其它最大的区别
就是提供了拦截器功能