我从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语句”和“凌乱的空格”
答案 0 :(得分:13)
在定义之前使用了'
document
'
你得到这个是因为document
变量尚未声明。您可以告诉JSLint它应该假设代码将在浏览器中运行,因此假定document
和window
之类的内容是预先定义的。您可以使用文件顶部的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中中断。