应用程序编程接口

JSHint 提供了一个 JavaScript API,用于在 Web 浏览器和 Node.js 等环境中进行编程访问。

JSHINT( source, options, predef )

分析源代码中的错误和潜在问题。

参数

  • source
    • 描述:输入的 JavaScript 源代码
    • 类型:字符串或字符串数组(每个元素被解释为一个换行符)
    • 示例:JSHINT(["'use strict';", "console.log('hello, world!');"]);
  • options
    • 描述:分析源代码时使用的 代码风格选项
    • 类型:一个对象,其属性名称是要使用的选项,其属性值是这些属性的配置值。
    • 示例:JSHINT(mySource, { undef: true });
  • predef
    • 描述:在当前文件之外定义的变量;此参数的行为与 globals 代码风格选项 相同
    • 类型:一个对象,其属性名称是全局变量标识符,其属性值控制是否应将每个变量视为只读
    • 示例:JSHINT(mySource, myOptions, { jQuery: false });

JSHINT.errors

由最近一次调用 JSHINT 生成的警告和错误数组。

JSHINT.data()

生成包含有关最近一次调用 JSHINT 的详细信息的报告。

例如,以下代码

var source = [
  'function goo() {}',
  'foo = 3;'
];
var options = {
  undef: true
};
var predef = {
  foo: false
};

JSHINT(source, options, predef);

console.log(JSHINT.data());

...将产生以下输出

{
  functions: [
    {
      name: 'goo',
      param: undefined,
      line: 1,
      character: 14,
      last: 1,
      lastcharacter: 18,
      metrics: {
        complexity: 1,
        parameters: 0,
        statements: 0
      }
    }
  ],
  options: {
    undef: true,
    indent: 4,
    maxerr: 50
  },
  errors: [
    {
      id: '(error)',
      raw: 'Read only.',
      code: 'W020',
      evidence: 'foo = 3;',
      line: 2,
      character: 1,
      scope: '(main)',
      a: undefined,
      b: undefined,
      c: undefined,
      d: undefined,
      reason: 'Read only.'
    }
  ],
  globals: [
    'goo',
    'foo'
  ],
  unused: [
    {
      name: 'goo',
      line: 1, character: 10
    }
  ]
}