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;
    });
};

所以我的选择是:

  1. 放弃 Dreamweaver 并使用另一个 IDE(最糟糕的,因为它对我的目的来说工作得很好 - 我是我项目中唯一的 HTML/CSS/JS/PHP/MySQL 开发人员。
  2. 像 Dreamweaver 想要的那样修复所有错误,因为它有一个好点。那请解释一下为什么?我可以将“==”更改为“===”,在变量声明之前添加 "var",不在 "if" 之后使用 "return" 而不使用大括号,但是 "use strict" 事情困扰我。
  3. 调整 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 不会将 myGlobalVarmyGlobalFunction() 标记为未定义错误。使用 "globals" 内联指令具有记录 .js 文件之间的依赖关系的额外好处。

在此处阅读有关 JSHint 内联指令的信息:

http://jshint.com/docs/#inline-configuration