首页 > web前端 > js教程 > JavaScript 中的提升是什么?

JavaScript 中的提升是什么?

Patricia Arquette
发布: 2025-01-14 22:30:48
原创
579 人浏览过

O que é Hoisting no JavaScript?

想象一下您正在准备一场魔术表演。在开始之前,魔术师整理好他将在舞台上使用的所有物品,将卡片、兔子和帽子放在正确的位置。这有助于他在表演技巧时不会搞砸。

在 JavaScript 中,当您编写代码时会发生类似的情况。在本例中,“魔术师”是 JavaScript,它在开始运行程序之前组织一些事情。这种自动组织称为提升


吊装如何工作?

  1. 首先设置:
    JavaScript 获取变量和函数的所有声明并将它们“爬”到代码的顶部。就好像他说:“在开始之前,我要把所有重要的东西分开,这样我就不会迷路。”

  2. 重要:
    声明移动到顶部,而不是分配的值。就好像你在说,“嘿,这顶魔法帽存在!”,但 JavaScript 只会在代码中的正确时间到达时才弄清楚如何使用帽子。


一个简单的例子

请参阅此代码:

console.log(meuNome); // undefined
var meuNome = "Jonas";
console.log(meuNome); // Jonas
登录后复制

乍一看似乎很奇怪:JavaScript 如何在我声明 myName 之前知道它存在?

发生这种情况是因为他在幕后做了这样的事情:

var meuNome; // Declaração "subiu"
console.log(meuNome); // undefined
meuNome = "Jonas"; // Valor atribuído
console.log(meuNome); // Jonas
登录后复制

换句话说,它添加了变量 myName 的声明,但只在正确的位置分配了值 "Jonas"

使用 letconst 提升

现在,有一个重要的区别:如果您使用 letconst,JavaScript 不允许您在声明 之前使用变量。
看看:

console.log(idade); // Erro: Cannot access 'idade' before initialization
let idade = 14;
登录后复制

发生这种情况是因为 letconst 被“存储”在一个特殊区域,并且只能在声明后才能使用。

提升功能

JavaScript 中的函数也是“引发”的。看这个例子:

cumprimentar();

function cumprimentar() {
  console.log("Olá!");
}
登录后复制

即使在声明之前调用函数,它也能工作!发生这种情况是因为 JavaScript 将整个函数“爬”到了代码顶部。

结论

提升就好像 JavaScript 是一个超级有组织的魔术师:它在开始运行之前快速查看您的代码,分离所有变量和函数声明,然后才开始表演。

但请记住:能力越大,责任越大。在不了解提升的情况下使用它可能会导致混乱。因此,请仔细声明您的变量和函数,以便您的代码更清晰、更有条理!

以上是JavaScript 中的提升是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板