zoukankan      html  css  js  c++  java
  • 前端面试题

    什么是匿名函数?

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

    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),只有"任务队列"通知主线程,某个异步任务可以执行了,该任务才会进入主线程执行。

  • 相关阅读:
    【NOIP模拟赛】正方形大阵
    【优化王牌】二分查找
    【Ah20160703】咏叹 By C_SUNSHINE
    【NOIP模拟赛】lover——心上人
    【小奇模拟赛】小奇挖矿2
    【NOIP模拟赛】工资
    关于博客装修的说明
    【快速处理】分块算法
    【集训】 考试笔记
    【HDNOIP】HD201404最短路径
  • 原文地址:https://www.cnblogs.com/BigFatStar/p/14017418.html
Copyright © 2011-2022 走看看