Dreamweaver CC 中的奇怪 Javascript 验证
Strange Javascript validation in dreamweaver CC
我安装了 Dreamweaver CC 2015,发现我的工作 JavaScript 文件中有无数错误。
我在导入的 JavaScript 库中也有无数错误,包括 jQuery.
最重要的"error"是每个工作函数开头的这个:
Missing "use strict" statement.
它在没有 "use strict" 的情况下工作得很好,我什至从未在任何地方看到过这种说法。
另一个奇怪的是:
Extending prototype of native object: 'Array'.
这是引发警告的代码:
Array.prototype.sortOn = function(key){
this.sort(function(a, b){
if(a[key] < b[key]){
return -1;
}else if(a[key] > b[key]){
return 1;
}
return 0;
});
};
所以我的选择是:
- 放弃 Dreamweaver 并使用另一个 IDE(最糟糕的,因为它对我的目的来说工作得很好 - 我是我项目中唯一的 HTML/CSS/JS/PHP/MySQL 开发人员。
- 像 Dreamweaver 想要的那样修复所有错误,因为它有一个好点。那请解释一下为什么?我可以将“==”更改为“===”,在变量声明之前添加 "var",不在 "if" 之后使用 "return" 而不使用大括号,但是 "use strict" 事情困扰我。
- 调整 JavaScript 验证,以便只显示严重错误 - 对我来说是最好的选择 - 但我不知道该怎么做?
最好的选择是什么?
非常感谢任何帮助。
这是我想出来的。
问题是我不知道用于验证 javascript 的 JSHint 和 JSLint 解决方案。 JSHint 已集成到 Dreamweaver CC 中,并且可以轻松配置,前提是您知道该怎么做。
通常是 JSHint has three ways to tweak it,但它们在 Dreamweaver 环境中不起作用。
你应该做的是:
- 从顶部菜单 select 编辑 -> 首选项(Dreamweaver -> Mac 上的首选项)
- 从侧面菜单中选择 "Linting"。
- Select "JS" 然后点击 "Edit and save changes".
- 文件
JS.jshintrc
将在 Dreamweaver 中打开。
- 像往常一样编辑文件 (see JSHint options) 并保存。
在我的具体情况下,我改变了这个:
"strict":false,
"undef":false,
"unused":false
...这意味着我不必在任何地方都放置 "use strict" 并且可以将变量的定义和用法留在不同的文件中。是的,我不使用包装函数并使用大量全局变量。是的,我知道这很糟糕,但重构这不是我日程安排中的最高优先级。
当然,我会将这三个选项全部更改为 "true",并重构我所有的 JS 文件以在适当的时候符合标准。
关闭 "undef" 检查是一个大锤,因为 JSHint 将忽略所有变量和函数名称拼写错误。直到 运行 时间你才会发现打字错误,这很烦人而且浪费时间。
我没有完全禁用 "undef" 消息,而是一直在我的 .js 文件顶部附近使用 JSHint 内联指令。例如:
/* globals myGlobalVar, myGlobalFunction */
var myLocalVar = myGlobalVar;
myGlobalFunction();
使用文件中的 globals 指令,JSHint 不会将 myGlobalVar
或 myGlobalFunction()
标记为未定义错误。使用 "globals" 内联指令具有记录 .js 文件之间的依赖关系的额外好处。
在此处阅读有关 JSHint 内联指令的信息:
我安装了 Dreamweaver CC 2015,发现我的工作 JavaScript 文件中有无数错误。 我在导入的 JavaScript 库中也有无数错误,包括 jQuery.
最重要的"error"是每个工作函数开头的这个:
Missing "use strict" statement.
它在没有 "use strict" 的情况下工作得很好,我什至从未在任何地方看到过这种说法。
另一个奇怪的是:
Extending prototype of native object: 'Array'.
这是引发警告的代码:
Array.prototype.sortOn = function(key){
this.sort(function(a, b){
if(a[key] < b[key]){
return -1;
}else if(a[key] > b[key]){
return 1;
}
return 0;
});
};
所以我的选择是:
- 放弃 Dreamweaver 并使用另一个 IDE(最糟糕的,因为它对我的目的来说工作得很好 - 我是我项目中唯一的 HTML/CSS/JS/PHP/MySQL 开发人员。
- 像 Dreamweaver 想要的那样修复所有错误,因为它有一个好点。那请解释一下为什么?我可以将“==”更改为“===”,在变量声明之前添加 "var",不在 "if" 之后使用 "return" 而不使用大括号,但是 "use strict" 事情困扰我。
- 调整 JavaScript 验证,以便只显示严重错误 - 对我来说是最好的选择 - 但我不知道该怎么做?
最好的选择是什么? 非常感谢任何帮助。
这是我想出来的。
问题是我不知道用于验证 javascript 的 JSHint 和 JSLint 解决方案。 JSHint 已集成到 Dreamweaver CC 中,并且可以轻松配置,前提是您知道该怎么做。
通常是 JSHint has three ways to tweak it,但它们在 Dreamweaver 环境中不起作用。
你应该做的是:
- 从顶部菜单 select 编辑 -> 首选项(Dreamweaver -> Mac 上的首选项)
- 从侧面菜单中选择 "Linting"。
- Select "JS" 然后点击 "Edit and save changes".
- 文件
JS.jshintrc
将在 Dreamweaver 中打开。 - 像往常一样编辑文件 (see JSHint options) 并保存。
在我的具体情况下,我改变了这个:
"strict":false,
"undef":false,
"unused":false
...这意味着我不必在任何地方都放置 "use strict" 并且可以将变量的定义和用法留在不同的文件中。是的,我不使用包装函数并使用大量全局变量。是的,我知道这很糟糕,但重构这不是我日程安排中的最高优先级。
当然,我会将这三个选项全部更改为 "true",并重构我所有的 JS 文件以在适当的时候符合标准。
关闭 "undef" 检查是一个大锤,因为 JSHint 将忽略所有变量和函数名称拼写错误。直到 运行 时间你才会发现打字错误,这很烦人而且浪费时间。
我没有完全禁用 "undef" 消息,而是一直在我的 .js 文件顶部附近使用 JSHint 内联指令。例如:
/* globals myGlobalVar, myGlobalFunction */
var myLocalVar = myGlobalVar;
myGlobalFunction();
使用文件中的 globals 指令,JSHint 不会将 myGlobalVar
或 myGlobalFunction()
标记为未定义错误。使用 "globals" 内联指令具有记录 .js 文件之间的依赖关系的额外好处。
在此处阅读有关 JSHint 内联指令的信息: