首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在任何情况下,提升行为是有益的?

在任何情况下,提升行为是有益的?
EN

Stack Overflow用户
提问于 2013-08-26 14:45:45
回答 1查看 156关注 0票数 4

在与开发人员进行一些非正式讨论时,我遇到了提升的主题,我被告知提升不是错误、错误或编写不当的功能,而是开发人员的一个强大工具。

有人能解释JavaScript如何在JavaScript中作为一个强大的概念来提升变量和函数,或者在编写代码时有什么帮助?(或者)这仅仅是一个无意中被开发人员发现的概念吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-26 14:59:46

这是我最喜欢的关于提升和其他JavaScript作用域问题/特性的文章,它比我所希望的更好地解释了它:

http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html

编辑:

我错过了你其实是在问什么时候提升是有用的,而不仅仅是它的作用。

所以,既然您已经阅读了这篇文章,并且知道了它的作用,下面是一个非常常见的片段,它使用了提升:

JS档案:

代码语言:javascript
复制
var myVar = myVar || {};
myVar.foo = function(){};
//etc...

您将看到在许多OOP JavaScript文件的顶部使用它来声明对象。我们可以这样写它的原因是因为Javascript的提升。

如果不提升,我们就得写

如果(typeof myVar != 'undefined'){ var myVar = myVar;}else{ var myVar = {};}

或者其他类似的东西。

另一种巧妙的提升技巧如下:

代码语言:javascript
复制
var a, b = a = "A";

这相当于:

代码语言:javascript
复制
var a = "A";
var b = a;

在编写函数时,提升会发生另一件好事。

在一种不需要提升的传统语言中,在执行任何代码之前,您需要在页面顶部编写所有函数。否则,您将得到一个错误,即该函数不存在。

通过提升,您的函数可以在任何地方声明(只要您使用var),并且它们将被提升到顶部,这意味着您不会得到这些错误。

现在,如果您正在编写您自己的代码,那么无论如何您应该在它们各自作用域的顶部声明变量,但是假设您有几个脚本文件要连接到其中一个。吊装使这个过程更加简单。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18446871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档