我安装了Dreamweaver CC 2015,发现我的JavaScript文件中存在MYRIAD错误。 我在导入的JavaScript库中也有MYRIAD错误,包括jQuery。
最重要的“错误”是每个工作函数开头的这个错误:
Missing "use strict" statement.
没有“严格使用”,它的效果非常好,我甚至从未在任何地方看到这种说法。
另一个奇怪的是:
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;
});
};
所以我的选择是:
最好的选择是什么? 非常感谢任何帮助。
答案 0 :(得分:11)
这是我想出来的。
问题是我不知道用于验证javascript的JSHint和JSLint解决方案。 JSHint已集成到Dreamweaver CC中,并且只要您知道该怎么做,就可以轻松配置。
通常是JSHint has three ways to tweak it,但它们在Dreamweaver环境中不起作用。
你应该做的是:
JS.jshintrc
将在Dreamweaver中打开。在我的具体案例中,我改变了这一点:
"strict":false,
"undef":false,
"unused":false
...这意味着我不必在任何地方放置“use strict”,并且可能会在不同的文件中留下变量的定义和用法。是的,我不使用包装函数并使用大量的全局变量。是的,我知道这很糟糕,但重构这不是我日程安排中的最高优先级。
当然,我会将所有这三个选项更改为“true”并重构所有JS文件,以便在时机成熟时遵守标准。
答案 1 :(得分:0)
关闭&#34; undef&#34; check是一个大锤,因为JSHint将忽略所有变量和函数名称拼写错误。你不会在运行时找到拼写错误,这很烦人,浪费时间。
而不是禁用&#34; undef&#34;完全消息,我一直在我的.js文件顶部附近使用 JSHint Inline Directives 。例如:
/* globals myGlobalVar, myGlobalFunction */
var myLocalVar = myGlobalVar;
myGlobalFunction();
使用文件中的globals指令,JSHint不会将myGlobalVar
或myGlobalFunction()
标记为未定义的错误。使用&#34;全局&#34;内联指令还有一个额外的好处,就是记录.js文件之间的依赖关系。
在这里阅读JSHint内联指令: