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に、コードがブラウザーで実行されることを前提としているため、documentおよびのようなものwindowが事前定義されていることを前提としていることを伝えることができます。これは、ファイルの上部にある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の実行時に「アラート」が定義されていない-StackOverflow

そして、開発オプションについては次のとおりです。

このオプションは、貧乏人のデバッグをログに記録するために通常使用されるグローバルを定義します:コンソール、アラートなど。たとえば、console.logはInternet Explorerのレガシーバージョンで壊れるため、通常は本番環境で出荷しないことをお勧めします。

于 2012-07-14T23:34:04.250 に答える