声明变量和声明函数的提升有什么区别?

(1) 变量声明提升:变量申明在进入执行上下文就完成了。

只要变量在代码中进行了声明,无论它在哪个位置上进行声明, js引擎都会将它的声明放在范围作用域的顶部;

(2) 函数声明提升:执行代码之前会先读取函数声明,意味着可以把函数申明放在调用它的语句后面。

只要函数在代码中进行了声明,无论它在哪个位置上进行声明, js引擎都会将它的声明放在范围作用域的顶部;

(3) 变量or函数声明:函数声明会覆盖变量声明,但不会覆盖变量赋值。

同一个名称标识a,即有变量声明var a,又有函数声明function a() {},不管二者声明的顺序,函数声明会覆盖变量声明,也就是说,此时a的值是声明的函数function a() {}。注意:如果在变量声明的同时初始化a,或是之后对a进行赋值,此时a的值变量的值。eg: var a; var c = 1; a = 1; function a() { return true; } console.log(a);

发布了67 篇原创文章 · 获赞 0 · 访问量 1262

猜你喜欢

转载自blog.csdn.net/zmmsdk/article/details/104214883