const 变量提升 声明函数
时间: 2024-12-31 22:06:31 浏览: 6
在JavaScript中,`const`变量提升(hoisting)是指变量声明语句会被提升到当前作用域的顶部,但赋值不会被提升。这意味着无论你在哪里声明`const`变量,JavaScript引擎都会在其所在代码块开始时将其声明部分移到上面。然而,如果你试图访问这个提升的声明但在初始化之前尝试使用它,会得到`undefined`,直到初始化完成。
例如:
```javascript
console.log(x); // undefined
const x = 5;
```
在这个例子中,`x`在`console.log`之后被声明,但由于提升了,实际上是在代码开始就被声明了,所以输出`undefined`,而不是抛出错误。
声明函数的行为也遵循相似的原则。函数声明会在其所在的作用域内立即提升,你可以像这样调用它们,即使它们在引用之前:
```javascript
sayHello(); // "Hello, world!"
function sayHello() {
console.log("Hello, world!");
}
```
这里,`sayHello()`函数声明被提升到了它的位置之上,尽管在调用之前。
阅读全文