JS中的函数声明提升和变量声明提升

来源:互联网 发布:网络机顶盒多少钱一个 编辑:程序博客网 时间:2024/05/22 07:55

在 你不知道的JavaScript(上卷) 一书的第40页中写到:函数会首先被提升,然后才是变量。

console.log(a);   function a(){    console.log("函数声明");}var a= "变量";

这里输出的是”function a(){console.log(“函数声明”);}”;

函数提升优先级比变量提升要高,且不会被变量声明覆盖,但是会被变量赋值覆盖,所以上面的代码实际上等价于:

function foo(){    console.log("函数声明");}var foo;console.log("第一个:" + foo);   foo = "变量";console.log("第二个:" + foo);  

输出:function a(){} 和 “变量”;

原创粉丝点击