gpt4 book ai didi

javascript - JS try/catch 生成 jshint 错误

转载 作者:行者123 更新时间:2023-11-28 20:12:47 27 4
gpt4 key购买 nike

关于为什么以下实现有效但被认为是 jshint 错误有什么建议吗?

try {
map.childNodes.length;
} catch (err) {
console.log(err);
}

我只是想在迭代之前看看childNodes是否有长度。

这里有类似的事情:

try {
response.errors.length > 0;
deferred.reject(response);
} catch (e) {
deferred.resolve(response);
}

最佳答案

来自 JSHint 的警告是:

Expected an assignment or function call and instead saw an expression.

即使不使用try..catch,警告也会显示。 JSHint 让您知道 map.childNodes.length; 作为独立语句可能没有用,并且可能表明存在编码错误;也就是说,在大多数情况下,您希望对值执行某些操作,而不仅仅是将其作为独立语句进行访问。例如,使用(无用的)语句 5; 会收到相同的警告。

当然,有时将属性作为语句中的唯一行为进行访问可能会很有用。例如,如果您使用 Object.defineProperty 在属性上定义了 getter 函数,则访问该属性将触发该 getter 函数。但是,纯值语句更有可能是编码错误,因此 JSHint 会警告您有关可疑代码的信息。

也就是说,假设您担心 response.error 可能是一个错误值(undefinednull),您的方法可以改进>) 而不是对象:

if(response.errors && response.errors.length > 0) {
deferred.resolve(response);
} else {
deferred.reject(response);
}

关于javascript - JS try/catch 生成 jshint 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19643481/

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