• 前端面试题


    什么是匿名函数?

    匿名函数就是没有真正名字的函数,可以用一个立即执行的匿名函数创建一个块级作用域,匿名函数执行完毕后,存储在内存中的相应变量会被销毁,从而节省内存。并且在大型多人开发的项目中,块级作用域可以减少变量命名冲突。匿名函数还可以实现闭包,如下:

    function fn(num){
          let Arr = [];
          for(let i=0;i<num;++i) {
                Arr.push(function() {
                    console.log(`我是第${i}`);
                });                       
          }
        return Arr;
    }
    let aa = fn(5);
    

    什么是闭包

    闭包指可以访问到外部函数内部变量的函数,正常函数执行完毕后,里面声明的变量被垃圾回收处理掉,但是闭包可以让作用域里(外部函数)的变量和参数,在函数执行完后,内存不会被释放。闭包可以当做返回值被函数返回,也可以当做参数传入函数中,应该尽量避免使用闭包,会增大内存使用量,使用不当很容易造成内存泄露。

    Event Loop

    Event Loop是一种运行机制,js采用这种机制来解决单线程运行带来的一些问题。js是单线程,主要用途是与用户的交互以及操作DOM。js中所有任务分为同步和异步两种,同步任务在主线程上排队执行,只有前一个任务执行完才会执行下一个,异步任务不进入主线程、而进入"任务队列"(task queue),只有"任务队列"通知主线程,某个异步任务可以执行了,该任务才会进入主线程执行。

  • 相关阅读:
    IN字段查询多少个值最合适?
    程序员交流禁忌之一: 为什么不
    C++11新特性
    用haskell写brainfuck解释器
    数理逻辑02 推演系统
    计算方法1 函数求根
    数理逻辑03 一阶逻辑
    Ubuntu下的数电实验环境配置
    博弈论1 纳什均衡
    数理逻辑习题乱做
  • 原文地址:https://www.cnblogs.com/BigFatStar/p/14017418.html
Copyright © 2020-2023  润新知