新闻资讯

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻资讯列表

JavaScript Hoisting的含义是什么

发布时间:2023-10-12 00:41:08

JavaScript Hoisting的含义是甚么

JavaScript Hoisting是指在代码履行前,JavaScript引擎会将变量和函数的声明从其作用域中的顶部移动到顶部,不管实际声明的位置在哪里。这意味着在代码中的任何位置,都可以援用变量和函数的声明,而不会引发毛病。
Hoisting主要产生在两个方面:

  • 变量声明:变量声明会被提升到其作用域的顶部,但是变量的赋值不会被提升。
  • 函数声明:函数声明会被提升到其作用域的顶部,这意味着可以在函数声明之前调用函数。

例如,以下代码演示了Hoisting的行动:

console.log(x); // undefined
var x = 5;
console.log(y); // ReferenceError: y is not defined
let y = 10;
sayHello(); // "Hello"
function sayHello() {
console.log("Hello");
}

在第一个例子中,变量x的声明被提升到顶部,但是赋值操作并没有被提升,所以在声明之前打印x会得到undefined。
在第二个例子中,变量y使用let关键字声明,let不会被hoisting,所以在声明之前使用y会抛出ReferenceError。
在第三个例子中,函数sayHello的声明被提升到顶部,所以可以在声明之前调用函数。