在Javascript中,我们不必在使用它之前用var
关键字声明变量。我们可以直接执行诸如myCount = 12;
或myStr = "Hello";
(其中myCount,myStr之前未声明)。任何这样的用法,声明和初始化'全局'范围内的变量。为什么在使用它之前不一定要在JavaScript中声明一个变量?
提供此功能的原因是什么?这是一个很好的标准吗?
更新:我的问题不是'使用未声明的变量'和'声明然后使用'之间的区别以及它如何影响范围。
我的问题是'为什么它被允许在javascript中直接使用变量而没有声明',因为大多数编程语言都对此进行了严格检查。
UPDATE:我看到以下带引号的文字是此功能的一个坏影响。那么,为什么有这个功能呢?
“假设有一个全局声明的变量x
(var x="comparison string"
)已经对此我不知道和我一起创造的意图我自己的全球性的‘X’里的我的功能之一初始化一个(x=-1
),并有我弄坏其他功能。
那么,有没有在所有的任何正当理由吗?有这个功能吗?
值得把你的JS代码通过克罗克福德的JSLint来检测snafu就像那样 - 和其他:) – Kristen 2009-02-24 14:46:31
(对不起,我明白这不是你的问题的答案,它只是一个建议) – Kristen 2009-02-24 14:47:06
而且一个很好的建议。 :) – Magnar 2009-02-26 10:29:20