JavaScript高级(04_线程机制和事件机制)

时间:2020-09-23 23:00:40   收藏:0   阅读:36

线程与进程

浏览器内核模块组成

js线程

定时器问题:

事件处理机制(图)

H5 Web Workers

分号问题

  1. 一条js语句的后面可以不加分号

  2. 在下面2种情况下不加分号会有问题

    • 小括号开头的前一条语句

    • 中方括号开头的前一条语句

    • 解决办法: 在行首加分号

内存溢出与内存泄露

  1. 内存溢出

    • 一种程序运行出现的错误

    • 当程序运行需要的内存超过了剩余的内存时, 就出抛出内存溢出的错误

    var obj = {}
      for (var i = 0; i < 10000; i++) {
        obj[i] = new Array(10000000)
        console.log(‘-----‘)
    }
  2. 内存泄露

    • 占用的内存没有及时释放

    • 内存泄露积累多了就容易导致内存溢出

    • 常见的内存泄露:

      • 意外的全局变量

        function fn() {
          a = new Array(10000000)
          console.log(a)
        }
        fn()
      • 没有及时清理的计时器或回调函数

        var intervalId = setInterval(function () { //启动循环定时器后不清理
            console.log(‘----‘)
          }, 1000)
        //clearInterval(intervalId) //解决方法
      • 闭包

        function fn1() {
          var a = 4
          function fn2() {
            console.log(++a)
          }
          return fn2
        }
        var f = fn1()
        f()
        ?
        // f = null //解决方法
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!