通过阅读documentation设置undef似乎可以控制“ x尚未定义”警告。但是将其设置为false不会停止这些警告。所以这让我想知道undef的实际作用。

有人可以解释比文档更好的解释吗?

注意:要忽略这些警告,我必须使用/*jshint -W117 */

最佳答案

启用undef选项时,只要发现使用非本地变量(范围中既不是参数也不是“ var”变量),就会发出警告。

the example中获取代码,在'myvar' is not defined.中产生以下结果(此警告表明,代码在运行时可能会导致ReferenceError;而不是值是“ undefined”。)

/*jshint undef:true */
function test() {
  var myVar = 'Hello, World';
  console.log(myvar); // Oops, typoed here. JSHint with undef will complain
}


禁用该选项时,不会发出警告,因为它假定要访问myvar gobal变量。这又可以通过global directive接受/验证,以下内容再次没有警告。

/*jshint undef:true */
/*global myvar*/
function test() {
  var myVar = 'Hello, World';
  console.log(myvar); // Yup, we wanted the global anyway!
}

关于javascript - JSHint选项“undef”有什么作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24152206/

10-12 13:14