gpt4 book ai didi

javascript - JSLint 错误 : Move all 'var' declarations to the top of the function

转载 作者:IT王子 更新时间:2023-10-29 02:48:11 24 4
gpt4 key购买 nike

JSLint 站点已更新,我无法再检查 JS 脚本。对我来说,这个警告并不严重,我不想通过数千行来解决这个问题,我想找到更严重的问题。

有人知道如何关闭此错误,或使用旧版 JSLint 吗?

更新

例子:

function doSomethingWithNodes(nodes){
this.doSomething();

for (var i = 0; i < nodes.length; ++i){
this.doSomethingElse(nodes[i]);
}

doSomething(); // want to find this problem
}

jslint.com 输出:

Error:
Problem at line 4 character 8: Move all 'var' declarations to the top of the function.

for (var i = 0; i < nodes.length; ++i){

Problem at line 4 character 8: Stopping, unable to continue. (44% scanned).

问题:

在函数之上添加变量是新要求。我无法使用 JSLINT 来测试代码,因为它会在出现此错误时停止扫描脚本。

我有很多代码,不想把这个警告当作严重错误来威胁。

2011 年 8 月 22 日更新:发现 http://jshint.com , 它看起来比 http://jslint.com/ 好多了

最佳答案

2017 年 6 月更新:根据支持(例如,如果您没有在 Internet Explorer 10 或更低版本中运行 JavaScript),您应该考虑使用 let而不是 var .

例如:for(let i=0; ...; i++)


我无法将 for(var i=0; ...; i++) 中的 var i; 放在函数的顶部.特别是当The JavaScript Specificationfor 部分 (12.6) 中将其作为可接受的语法。此外,它是语法 Brendan Eich在他的例子中使用。

将声明移到顶部的想法是它应该更准确地反射(reflect)引擎盖下发生的事情,但是,这样做只会反射(reflect),不会影响。

对我来说,这是对for 迭代的荒谬期望。更重要的是,因为 JSLint 在检测到它时会停止处理。

在函数顶部声明变量是否更具可读性是值得商榷的。我个人更喜欢在使用时声明迭代器变量。我不关心变量是否已经在内部创建,我在这里初始化它所以我很安全。

我认为在使用它们的地方声明一个迭代器变量可以确保它们不会意外地成为全局变量(如果您将循环移出到另一个函数中,迭代器变量会随之移动)。这比必须在函数顶部维护变量声明更易于维护。

现在,我正在使用 http://www.javascriptlint.com/online_lint.php因为它似乎专注于重要的事情。

关于javascript - JSLint 错误 : Move all 'var' declarations to the top of the function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4646455/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com