问题如下
监控img src加载出错
判断flex兼容性
if ('flex' in document.documentElement.style)
外边距重叠-margin-collapse
当相邻元素都设置了margin边距时,都是正值时,将取最大值,舍弃小值。 都是负值时,取绝对值最大的,从0开始负向位移; 有正有负时,先取负中绝对值最大的,和正值中最大的margin相加;
解决办法: 给该元素加父元素,并且使其为BFC,overflow:hidden
箭头函数
和this同样没有被箭头函数绑定的参数有:arguments、super、this、new.target
箭头函数没有构造函数:常规函数有Construct和函数属性,
而箭头函数没有,所以 new (() => {}) 会报错
js 函数的内部属性
- arguments: 类数组对象,包含传入的所有参数,其中callee属性,是个指针,指向拥有这个arguments对象的函数
- this:函数执行的环境对象,在全局中调用为(window)
- caller:调用当前函数的函数的引用
缓存
Expires:Thu,01 Dec 1994 16:00:00 GMT(必须是GMT格式) 设置为-1,表示立即过期。指定的是一个绝对的过期时间。 在http1.0中已定义,cache-control:max-age在http1.1中才有定义,为了向下兼容,仅使用max-age是不够的。 max-age指定的是从文档被访问后的存活时间,相对于文档第一时间被请求时服务器记录的request-time。
异步加载js的方式
除了defer、async。 1,动态脚本文件document.creatElement('script').async,动态加载script标签引入js文件默认不会阻塞页面(即使在head里),也可以使用document.createElement('link')引入资源,默认在Chrome中不会阻塞。 2,ajax获取js代码,eval执行。不推荐。eval不安全,耗性能(2次,一次解析,一次执行)
IE各版本和chrome可以并行下载多少个资源
IE6,2个。IE7之后6个,Chrome,FireFox也6个。
Ajax的过程
1,创建XHR对象,2,创建一个新的http请求,并指定该请求的方法和url以及验证信息,3,设置响应http请求状态变化的函数,4,发送http请求,5,获取异步调用返回的资源,6,使用JavaScript和DOM实现局部刷新; onreadyState属性状态,5个值: 0= 未初始化,1= 启动,2= 发送,3= 接收,4 =完成
内存泄露的方式
1,闭包 2,setTimeout第一个参数使用字符串而非函数 3,控制台日志 4,对象彼此引用且相互保留,产生循环
BFC触发方式
1, float不为none 2, overflow不为visible 3, display的值为table-cell,table-caption或者inline-block 4, position不为relative和static
隐藏元素方式
1,display:none,不会占有原来的位置 2,visibility:hidden,占有原来的位置 3,H5新增hidden=‘hidden’,不会占有原来的位置
TCP和UDP区别
1,TCP面向连接,UDP发送数据前不需要先建立连接 2,TCP提供可靠的服务,通过TCP传输的数据无差错,不丢失,不重复且按序到达; UDP尽最大努力交付,不保证数据可靠; 3,TCP面向字节流的,UDP面向报文且网络出现拥塞不会使得发送速率降低(因此会出现丢包,对实时的应用IP电话或视频会议等) 4,TCP 1V1,UDP 1V1,1V多 5,TCP首部20字节,UDP8字节
http2 和 http1.1区别
http1.1默认长连接,connection:keep-alive