在 Javascript 中我们不需要声明变量var
使用关键字之前。我们可以立即做类似的事情myCount = 12;
or myStr = "Hello";
(其中 myCount、myStr 之前未声明)。任何此类用法都会在“全局”范围内声明并初始化变量。
提供此功能的原因可能是什么?这是一个好的标准吗?
UPDATE:我的问题不是“使用变量而不声明”和“声明然后使用”之间的区别以及它如何影响范围。
我的问题是“为什么 javascript 允许直接使用变量而不声明它”,因为大多数编程语言对此都有严格的检查。
UPDATE:我认为以下引用的文字是此功能的不良影响。那么,为什么要有这个功能呢?
“假设有一个全局声明的变量x
(var x="comparison string"
)我已经不知道了,我打算在我的函数之一中创建自己的全局“x”初始化一个(x=-1
),我最终破坏了其他功能。
那么,有什么充分的理由吗?因为有这个功能?
Javascript 旨在用于浏览器中非常简单的脚本。要求变量声明似乎没有必要。
当然,这是语言上的错误。 JavaScript 的开发者知道这一点。他们想改变它。但他们不能。为什么?
因为微软已经对 JavaScript 进行了逆向工程并创建了他们的重复 JScript,其中存在错误等。微软否决了任何更改,甚至是错误修复,因为他们坚决不破坏任何人的脚本。因此,即使他们更改了 JavaScript,IE 中的 JScript 也将保持不变。
这不是一个很好的理由。但这是我们拥有的。
资料来源:我从 Douglas Crockford 那里得到了 javascript 历史课:“The JavaScript 编程语言”,http://video.yahoo.com/watch/111593/1710507 http://video.yahoo.com/watch/111593/1710507故事的这一部分发生在视频的第 9 到 11 分钟之间。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)