您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

JavaScript变量是在循环内部还是循环内部声明?

JavaScript变量是在循环内部还是循环内部声明?

有 意义还是性能,在JavaScript或ActionScript。

var是解析器的指令,而 不是 运行时执行的命令。如果var函数体(*)中的任何位置一次或多次声明了特定的标识符,则该标识符在块中的所有使用将引用局部变量。value声明是var在循环内部,循环外部还是同时声明这两者都没有区别。

因此,您应该写出最容易阅读的内容。我不同意Crockford的观点,将所有var放在函数顶部始终是最好的选择。对于在代码部分中临时使用变量的情况,最好var在该部分中进行声明,因此该部分可以独立存在并且可以复制粘贴。否则,在重构过程中将几行代码复制粘贴到新函数中,而无需分别挑选并移动关联的var,这会使您自己成为意外的全局对象。

特别是:

for (var i; i<100; i++)
    do something;

for (var i; i<100; i++)
    do something else;

Crockford将建议您删除第二个var(或同时删除vars和do var i;),而jslint会为此向您请教。但是IMO将两个都var保留在一起,将所有相关代码保持在一起,而不是在函数顶部保留一些容易忘记的额外代码,是更可维护的。

我个人倾向于将var变量声明为代码的独立部分中的第一个赋值,无论是否在同一函数的其他部分中单独使用了同一变量名。对我来说,var根本不需要声明是JS wart(最好将变量认设置为local)。我不认为我也有责任在JavaScript中复制ANSI C的旧版本的限制。

(*:除了嵌套函数体中)

javascript 2022/1/1 18:14:26 有535人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶