[JavaScript]变量提升

什么是变量提升?

简单来说,就是JavaScript在执行程序时,会先把变量声明这一操作提前。换句话来说,就是不会在程序执行过程中声明变量。

例子:

function fn(){
  console.log(name);
  var name = "RoastDuck";
fn();
}

执行结果:

对于先使用后声明这种操作,凭借直觉,程序一定是错的。但是但是但是,控制台没有报错,只是说undedined,这就说明,变量已经声明,只不过是没有赋值。值得注意的是,变量提升只是把声明提前,并不会给变量赋值。也就是说,在变量提升的前提下,var name = "RoastDuck" var name没有区别.

程序不听使唤,难以接受。
但是但是但是,变量提升的问题在ES6版本中得到了解决。
我们可以使用let或const声明变量,把变量限制在作用域内。

例子:

function fn(){
  console.log(name);
  let name = "RoastDuck";
}
fn();

执行结果:

有了错误提示,就不用担心,什么时候手抖,把声明弄后面了!!!
posted @ 2023-02-06 16:06  Rev_RoastDuck  阅读(16)  评论(0编辑  收藏  举报