变量提升和函数提升的意义
程序员文章站
2022-04-01 23:38:54
先举个例子: 结果: 结果: 原因: 解析器在向执行环境中夹在数据时,对函数声明和函数表达式并非一视同仁。解析器会率先读取函数声明,并使其在执行任何代码之前可用(可以访问)。 说白了就是,用函数声明形式定义的函数支持变量提升 ,而函数表达式形式的不行。 个人理解: 如果能够变量提升,先用了再说,然后 ......
先举个例子:
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()
上一篇: 【前端单元测试入门04】Karma
下一篇: 小刘同学的第八十八篇博文