JSlint是否需要重新声明var counter的重新声明?(Is the JSlint warning `redeclaration of var counter` necessary?)

系统教程 行业动态 更新时间:2024-06-14 16:57:18
JSlint是否需要重新声明var counter的重新声明?(Is the JSlint warning `redeclaration of var counter` necessary?)

我有一个多行的脚本,我有很多这样的标志类型

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; }

更多推荐

本文发布于:2023-04-12 20:50:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/dzcp/919cb34d283a7519812d4a1abd6f8d0b.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:声明   var   JSlint   redeclaration   warning

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!