函数提升
Posted Lulin1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数提升相关的知识,希望对你有一定的参考价值。
在写JS代码的时候,有两种写法,一种是函数表达式,另外一种是函数声明方式。我们需要重点注意的是,只有函数声明形式才能被提升。
Notice that the assignment portion of the declarations were not hoisted. Only the name is hoisted. This is not the case with function declarations, where the entire function body will be hoisted as well. But remember that there are two normal ways to declare functions. Consider the following javascript:
function test() { foo(); // TypeError "foo is not a function" bar(); // "this will run!" var foo = function () { // function expression assigned to local variable ‘foo‘ alert("this won‘t run!"); } function bar() { // function declaration, given the name ‘bar‘ alert("this will run!"); } } test();
In this case, only the function declaration has its body hoisted to the top. The name ‘foo’ is hoisted, but the body is left behind, to be assigned during execution.
That covers the basics of hoisting, which is not as complex or confusing as it seems. Of course, this being JavaScript, there is a little more complexity in certain special cases.
以上是关于函数提升的主要内容,如果未能解决你的问题,请参考以下文章