JavaScript中的声明提升实例详解

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

JavaScript中的声明提升实例详解

czpcalm   2022-11-12 我要评论

函数的提升

声明提升(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); // undefined
var foo = "bar";
console.log(foo); // 'bar'

以上代码的解析结果为:

var foo;
console.log(foo);
foo = "bar";
console.log(foo);

这可能会导致一些奇怪的问题:

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们