我在与JavaScript
开发人员进行一些闲聊时遇到了提升的主题,我被告知吊装不是错误,错误或编写功能不佳但是功能强大的工具对于开发人员。
任何人都可以解释JavaScript
如何在JavaScript
中提升变量和函数作为一个强大的概念,或者在编写代码时它是如何有用的? (或)它只是一个意外被开发人员发现的意外概念?
答案 0 :(得分:1)
这是我最喜欢的关于吊装和其他JavaScript范围问题/功能的文章,并且比我希望的更好地解释了这一点:
http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html
修改强>
我错过了你实际上在询问吊装是否有用而不仅仅是它的作用。
所以,既然你已经阅读了那篇文章并知道它的作用,那么这是一个非常常见的片段,它使用了吊装:
var myVar = myVar || {};
myVar.foo = function(){};
//etc...
您将在许多OOP JavaScript文件的顶部看到这个用于声明对象。我们可以这样写的原因是因为在Javascript中提升。
如果没有提升,我们必须写
if(typeof myVar!='undefined'){ var myVar = myVar; }其他{ var myVar = {}; }
或类似的东西。
另一个巧妙的提升技巧如下:
var a, b = a = "A";
这相当于:
var a = "A";
var b = a;
当你编写函数时会发生另一个关于提升的好处。
在没有提升的更传统的语言中,您需要在执行任何代码之前在页面顶部编写所有函数。否则,您将收到该函数不存在的错误。
通过提升,您的功能可以在任何地方声明(只要您使用var
),它们将被提升到顶部,这意味着您不会收到这些错误。
现在,如果您正在编写自己的代码,那么您应该将变量声明在各自范围的顶部,但是假设您有一些脚本文件,您尝试将它们连接到一个。吊装使这个过程变得更加简单。