我有一个多行的脚本,我有很多这样的标志类型
var counter = 0; var carFlags = { Audio : counter++ , Bentley : counter++ , Chrysler : counter++ Datsun : counter++ ... };后来如果我以同样的方式创建一个新的标志对象
var counter = 0; var nameFlags = { Ashley : counter++ , Bronwyn : counter++ , Catherine : counter++ DakotaFanning : counter++ ... };它抱怨说计数器被用作更大声明的一部分,但我认为这是完全可以接受的。 但是,我在这里使用了两次计数器,所以它警告redeclaration of var counter的redeclaration of var counter 。 我可以将var counter移动到页面顶部,但这可能会使得不太清楚counter的用途。 使用var不止一次有什么问题吗? 我有一个delete counter声明,但它没有做任何事情。 我应该更改它以delete window.counter吗?
I have a script that's several lines long and I have a lot of flag types like so
var counter = 0; var carFlags = { Audio : counter++ , Bentley : counter++ , Chrysler : counter++ Datsun : counter++ ... };later if I create a new flag object the same way
var counter = 0; var nameFlags = { Ashley : counter++ , Bronwyn : counter++ , Catherine : counter++ DakotaFanning : counter++ ... };It complains that counter is used as part of a greater statement, but I think it's perfectly acceptable here. However, I have used counter twice here, so it warns of redeclaration of var counter. I could move var counter to the top of the page, but that might make it less clear what counter is used for. Is there any real problem with using var more than once? I had a delete counter statement but it did nothing. Should I change it to delete window.counter?
最满意答案
不,没有问题。 事实上,在Javascript中,无论如何,变量声明(带var )会自动提升到其封闭范围的顶部。 例如,以下内容:
var n = 5; if (n < 3) { var q = 2; var n = 4; }相当于:
var q, n=5; if (n < 3) { q = 2; n = 4; }No, there isn't a problem. In fact, in Javascript, variable declarations (with var) are automatically hoisted to the top of their enclosing scope anyway. For example, the following:
var n = 5; if (n < 3) { var q = 2; var n = 4; }is equivalent to:
var q, n=5; if (n < 3) { q = 2; n = 4; }更多推荐
发布评论