zoukankan      html  css  js  c++  java
  • 变量提升和函数提升的意义

    先举个例子:

    function test() {
        foo();
        function foo() {    //函数声明形式定义函数
            console.log("成功");
        }
    }
    test();
    

    结果:成功

    function test() {
        foo();
        var foo = function foo() {  //函数表达式形式定义函数
            console.log("成功");
        }
    }
    test();
    

    结果:TypeError:foo is not a function

    原因:

    解析器在向执行环境中夹在数据时,对函数声明和函数表达式并非一视同仁。解析器会率先读取函数声明,并使其在执行任何代码之前可用(可以访问)。 说白了就是,用函数声明形式定义的函数支持变量提升 ,而函数表达式形式的不行。

    个人理解:

    如果能够变量提升,先用了再说,然后再看说明,比如例子一。先调用foo(),接着才声明function foo()
  • 相关阅读:
    关于区间数颜色的主席树解决
    1020考试总结
    QR算法
    新的征程
    端点星2020.12.2联赛
    自我介绍&友链
    3个搜索
    搜索格式这样写
    T107073 归并排序
    还有这个题
  • 原文地址:https://www.cnblogs.com/n2meetu/p/8619371.html
Copyright © 2011-2022 走看看