当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 变量提升和函数提升的意义

变量提升和函数提升的意义

2018年03月22日  | 移动技术网IT编程  | 我要评论

先举个例子:

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()

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网