🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# JavaScript 变量提升 > 原文: [https://howtodoinjava.com/typescript/javascript-variable-hoisting/](https://howtodoinjava.com/typescript/javascript-variable-hoisting/) JavaScript 中的变量提升意味着**将所有变量声明移到函数**的顶部。 这意味着,如果我们在函数末尾声明一个变量,则运行时会将其提升到顶部,并且如果在声明之前使用了该变量,则不会有任何错误。 > 请注意,用`var`关键字声明的变量将被提升。 `let`和`const`(在 ES6 中引入)没有提升效果。 ## 什么是提升? 如前所述,提升意味着将变量声明移到顶部。 重要的是要注意,如果初始化变量,则不会发生**提升**。 #### 变量声明(发生提升) 在下面的代码中,在声明之前使用`data`。 ```java function fun() { data = 1; console.log(data); //Outputs 1 var data; } fun(); ``` 在运行时,提升以上代码后,代码将如下所示: ```java function fun() { var data; /*** moved to top ***/ data = 1; console.log(data); //Outputs 1 } fun(); ``` #### 变量初始化(不会发生提升) 在下面的代码中,`data`也进行了声明和初始化。 在这种情况下,将不发生提升并且不会向上移动。 因此,`data`的值只有在声明和初始化后才可用。 ```java function fun() { console.log(data); //Outputs 'undefined' var data = 1; console.log(data); //Outputs 1 } fun(); ``` 在评论部分中,将您与 Javascript 中的**变量提升**有关的问题放到我这里。 学习愉快!