未知的JSLint错误

时间:2012-07-14 22:14:16

标签: javascript jslint

我从JSLint收到以下错误,我无法理解它们:

- 所有问题都已得到解答 -

对这些方面有任何帮助吗?

use /*jslint browser: true, devel: true */
function submit() {
    "use strict";
    document.forms.form.submit();
    var Mathematics = document.personal.Mathematics;
    var OMathematics = document.personal.OMathematics;
    var Sci = document.personal.Sci;
    var OSci = document.personal.OSci;
    var ELA = document.personal.ELA;
    var OELA = document.personal.OELA;
    var SS = document.personal.SS;
    var OSS = document.personal.OSS;
    var Elec1 = document.personal.Elec1;
    var OElec1 = document.personal.OElec1;
    var Elec2 = document.personal.Elec2;
    var OElec2 = document.personal.OElec2;
    var Elec3 = document.personal.Elec3;
    var OElec3 = document.personal.OElec3;
    var Owed = 0;
    function calc(n, o) {
        if (n >= 90) {
            Owed = Owed + 1;
            if (n >= 95) {
                Owed = Owed + 1;
            }
        }
        else if (o >= 80) {
            Owed = Owed + 0.5;
        }
        if (n > o) {
            Owed = Owed + 0.5;
        }
        if (n < o) {
            if (n > 95) {
                Owed = Owed - 0.25;
            }
        }
    }
    calc(Mathematics, OMathematics);
    calc(Sci, OSci);
    calc(ELA, OELA);
    calc(SS, OSS);
    calc(Elec1, Elec1);
    calc(Elec2, Elec2);
    calc(Elec3, Elec3);
    alert(Owed);
}​

以下是上下文中的代码:http://jsfiddle.net/Aidoboy/AdzwC/

使用了异常:“每个函数有很多var语句”和“凌乱的空格”

2 个答案:

答案 0 :(得分:13)

  在定义之前使用了

'document'

你得到这个是因为document变量尚未声明。您可以告诉JSLint它应该假设代码将在浏览器中运行,因此假定documentwindow之类的内容是预先定义的。您可以使用文件顶部的JSLint注释来执行此操作:

/*jslint browser: true */

  

['form']最好用点符号编写

由于您知道属性的名称,因此无需使用方括号表示法:

document.forms.form.submit();

  在定义之前使用了

'alert'

您可以使用devel选项来阻止此错误(您还可以使用它来允许console.log次呼叫:

/*jslint browser: true, devel: true */

  

意外'​'

结束括号后有一些不可见的字符。只需删除该字符即可删除此错误。

答案 1 :(得分:1)

添加此项以避免警报定义错误:

/*jslint devel: true */

“alert” is not defined when running www.jshint.com - Stack Overflow

  

以及关于devel选项的以下内容:

     

此选项定义通常用于记录的全局变量   穷人的调试:控制台,警报等。这通常是一个好主意   不要在生产中发货,因为,例如,console.log   在旧版Internet Explorer中中断。