美文网首页
js闭包问题详解

js闭包问题详解

作者: 亚讯 | 来源:发表于2019-08-27 21:12 被阅读0次

    传言很多互联网公司不是停止招聘就是裁员的,相比春节后肯定有很多前端程序员需要找工作,于是就免不了面试了,本人就分享一道特别常考的笔试题,一道题就能用来面试各种阶段的前端工程师。

    一段看似简单的代码

    这道前端笔试题你会不?

    上面这段程序的运行结果是?只要你对 JS 中同步和异步代码的区别、变量作用域、闭包等概念有正确的理解,就知道正确答案是5,5,5,5,5,5;

    用->表示两次输出间有 1 秒,而逗号表示可忽略呢?

    循环执行过程中,几乎同时设置了 5 个定时器,一般情况下,这些定时器都会在 1 秒之后触发,而循环完的输出是立即执行的, 所以结果是 5 -> 5,5,5,5,5;

    如何让输出变成:5 -> 0,1,2,3,4?

    • 利用 IIFE(声明即执行的函数表达式)来解决闭包造成的问题:
    这道前端笔试题你会不?
    • 利用函数的参数传递是按值传递的特征,:
    这道前端笔试题你会不?

    如何让输出变成 0-> 1-> 2->3->4->5?

    • 增加定时器
    这道前端笔试题你会不?
    • 基于ES6 Promise 的解决方案
    这道前端笔试题你会不?
    • 完全基于ES6
    这道前端笔试题你会不?
    • 如何让代码层次更好
    这道前端笔试题你会不?
    • 能否使用ES7?
    这道前端笔试题你会不?
    • 还能优化吗?
    这道前端笔试题你会不?

    结语

    一道看似简单的笔试题,其实背后可以考察的东西很多,作为一个有追求的码农,不断打牢基础,才能写得出让自己下跪的代码!

    相关文章

      网友评论

          本文标题:js闭包问题详解

          本文链接:https://www.haomeiwen.com/subject/albyectx.html