提升在JavaScript中的工作原理是什么


这篇“提升在JavaScript中的工作原理是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“提升在JavaScript中的工作原理是什么”文章吧。提升(Hoisting)是 JavaScript 的概念,它使 JavaScript 与 Java 语言不同。在 Java 中,代码中创建的每个变量都具有块级作用域。意味着如果我们创建了任何将其可见性限制在声明它的块中的变量。因此,如果我们在声明中使用上面的变量,则会出错。但是在 JavaScript 中,变量可以在声明之前使用,这种机制称为 Hoisted。这是 JavaScript 的默认行为。提升是 JS 的默认行为,即在代码执行之前定义作用域顶部的所有声明。提升的好处之一是它使我们能够在函数出现在代码中之前调用它们。JavaScript 只提升声明,而不是初始化。理解 JavaScript 提升变量究竟是什么声明和初始化按以下顺序进行:声明 –> 初始化/赋值 –> 用法最重要的是,应该始终记住 JavaScript 首先在后台声明变量。然后,初始化它们。因此,了解变量声明的处理发生在任何代码执行之前也是很好的。但是,在执行分配它们的代码之前,JavaScript 中不存在未声明的变量。因此,在执行赋值时,分配给未声明变量的值会隐式地将其创建为全局变量。这指定所有未声明的变量都是全局变量。在上面的代码示例中,有一个名为 Hoisting() 的函数。因此,我们有一个没有使用 let/var/const 声明的变量和一个 let 变量 y。将未声明的变量分配给全局作用域是由 JavaScript 完成的。但是对于变量 y,我们得到了一个引用错误(Refence Error)。在 ES5 中,我们考虑 var 关键字。与 let/const 相比,使用 var 进行提升有些不同。使用 var 来查看提升如何工作的示例:在上面的代码中,当记录在使用它之后声明和分配的变量名称时,编译器给出“undefined”的结果。这是意料之中的,因为我们应该在声明它之前就尝试使用 car 变量,因为我们应该得到 ReferenceError。但是解释器对此有不同的看法,如下所示:用 let 或 const 声明的变量和常量不会被提升!JavaScript 初始化不是初始化。JavaScript 只能提升声明,而不能用来初始化。在上面的代码中,因为变量的声明发生在结果之前。所以结果,代码的执行打印了变量 a 和 b 的结果。结果:a 是 i10 而 b 是未定义的。因此,这是因为只发生了声明(var b)的提升,而不是初始化(=“Lamborgini”)到顶部。由于提升,b 在使用之前已经声明,但是因为初始化没有提升,所以 b 的值是未定义的。JavaScript 类可以分为两类:类声明类表达式在类声明中,它们很像函数对应物。因此,这意味着不会提升 JavaScript 类声明。但是,它们在评估之前保持未初始化状态。因此,这实际上意味着必须先声明一个类,然后才能使用它。在上面的代码中,出现了引用错误。这是因为在 car1 变量初始化之后,汽车类的定义就发生了。为了解决这个错误,我们只需要在 car1 初始化之前定义 car 类。这是在类声明中托免费云主机域名管。因此,这给出了正确的结果。在 Class 表达式中它们很像它们的函数对应物。因此,这意味着没有提升类表达。因此,下面是类表达式的未命名或匿名变体的示例:以上就是关于“提升在JavaScript中的工作原理是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注百云主机行业资讯频道。

相关推荐: SpringBoot如何实现数据交互

这篇文章主要介绍“SpringBoot如何实现数据交互”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot如何实现数据交互”文章能帮助大家解决问题。在实际的项目场景中,前后分离几乎是所以项目的标配,全栈的…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 08/21 21:03
下一篇 08/21 21:56

相关推荐