我的前端笔记

双等号的类型转换

undefined == null; // true

    分析:undefined与null 但不全等(===)
    当为number与string时,会将string转换为number;
     number和boolean时,会将boolean转换为number
      number或string与Object,会将Object转换成number或string

NaN == NaN; // false

  [] == false; // true

 [] == ![];  // true

alert(!![])        //true

 alert(![])        //false

拓展:for循环中的效率问题?)
                1.for(var i=0;i<arr.length;i++)

                2.for(var i in arr)

                3.for(var i=0,len=arr.length;i<len;i++)

                第三种效率更高!
                在大数据下:
                        第三种方式比第一种执行速度快3~4倍;
                        至于第三种比第三种快100多倍开外(详细数据:http://www.111cn.net/wy/js-ajax/39368.htm)

js异步加载

渲染引擎遇到 script 标签会停下来,等到执行完脚本,继续向下渲染

defer 是“渲染完再执行”,async 是“下载完就执行”,defer 如果有多个脚本,会按照在页面中出现的顺序加载,多个async 脚本不能保证加载顺序

加载 es6模块的时候设置 type=module,异步加载不会造成阻塞浏览器,页面渲染完再执行,可以同时加上async属性,异步执行脚本(利用顶层的this等于undefined这个语法点,可以侦测当前代码是否在 ES6 模块之中)

 

posted @ 2018-12-20 14:20  柳州园几声鸣蝉?  阅读(122)  评论(0)    收藏  举报