在与开发人员进行一些非正式讨论时,我遇到了提升的主题,我被告知提升不是错误、错误或编写不当的功能,而是开发人员的一个强大工具。
有人能解释JavaScript如何在JavaScript中作为一个强大的概念来提升变量和函数,或者在编写代码时有什么帮助?(或者)这仅仅是一个无意中被开发人员发现的概念吗?
发布于 2013-08-26 14:59:46
这是我最喜欢的关于提升和其他JavaScript作用域问题/特性的文章,它比我所希望的更好地解释了它:
http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html
编辑:
我错过了你其实是在问什么时候提升是有用的,而不仅仅是它的作用。
所以,既然您已经阅读了这篇文章,并且知道了它的作用,下面是一个非常常见的片段,它使用了提升:
JS档案:
var myVar = myVar || {};
myVar.foo = function(){};
//etc...您将看到在许多OOP JavaScript文件的顶部使用它来声明对象。我们可以这样写它的原因是因为Javascript的提升。
如果不提升,我们就得写
如果(typeof myVar != 'undefined'){ var myVar = myVar;}else{ var myVar = {};}
或者其他类似的东西。
另一种巧妙的提升技巧如下:
var a, b = a = "A";这相当于:
var a = "A";
var b = a;在编写函数时,提升会发生另一件好事。
在一种不需要提升的传统语言中,在执行任何代码之前,您需要在页面顶部编写所有函数。否则,您将得到一个错误,即该函数不存在。
通过提升,您的函数可以在任何地方声明(只要您使用var),并且它们将被提升到顶部,这意味着您不会得到这些错误。
现在,如果您正在编写您自己的代码,那么无论如何您应该在它们各自作用域的顶部声明变量,但是假设您有几个脚本文件要连接到其中一个。吊装使这个过程更加简单。
https://stackoverflow.com/questions/18446871
复制相似问题