一起聊聊JavaScript中的声明提升

javascriptjavascript 2023-08-28 22:51:29 932
摘要: 本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于声明提升的相关内容,声明提升是JavaScript解析器的一个特性,会对代码中的函数、变量声明语句作用提取到它所在的作用域的最前面,下面一起来看一下,希望对...

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于声明提升的相关内容,声明提升是JavaScript解析器的一个特性,会对代码中的函数、变量声明语句作用提取到它所在的作用域的最前面,下面一起来看一下,希望对大家有帮助。

【相关推荐:JavaScript视频教程、web前端】

声明提升(hosting)是 JavaScript 解析器的一个特性,它会把代码中的函数、变量声明语句作用提取到它所在作用域的最前面。

函数的提升

JavaScript 是支持在函数声明之前调用函数的。

say();function say() {  console.log("Hello");
}

解析器会扫描作用域内的代码,把函数声明提取到执行代码的前面。所以,解析器是这样看这段代码的:

function say() {  console.log("Hello");
}say();

除了普通函数,async function, function *, async function * 也有相同的提升效果。

var 变量声明提升

var 关键字的变量声明会被提升,但变量的赋值不会被提升。

console.log(foo); // undefinedvar foo = "bar";console.log(foo); // 'bar'