1

我从 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 语句”和“混乱的空白”

4

2 回答 2

13

' document' 在定义之前使用

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

/*jslint browser: true */

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

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

document.forms.form.submit();

' alert' 在定义之前使用

您可以使用该devel选项来防止此错误(例如,您也可以使用它来允许console.log调用):

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

意外'​'

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

于 2012-07-14T22:17:50.507 回答
1

添加这个以避免警报定义错误:

/*jslint devel: true */

运行 www.jshint.com 时未定义“警报” - Thinbug

以及关于开发选项的以下内容:

此选项定义了通常用于记录穷人调试的全局变量:控制台、警报等。通常最好不要在生产环境中发布它们,因为例如,console.log 在旧版本的 Internet Explorer 中会中断。

于 2012-07-14T23:34:04.250 回答