我目前正在验证我对JSLint的JavaScript并取得进展,它正在帮助我编写更好的JavaScript - 特别是在使用Jquery库时.
现在我所遇到JSHint,一个叉的JSLint.
所以我想知道很多JavaScript驱动的Web应用程序,这是更好或最适用的验证工具:
我想现在决定验证机制并继续前进,将其用于客户端验证.
和jshint和jslint之间的区别?请在单个javascript示例中解释.
链接:
jshint - http://www.jshint.com/
jslint - http://jslint.com/
类似,但不一样,如何在全局范围内启用ECMAScript"use strict"?
我已经购买了JavaScript Patterns,它建议启用use strict.将它添加到二十几个javascript文件中会有点麻烦,所以在全局启用它会很好.我原本想要添加到我的main.js的顶部,如下所示:
"use strict"
require({
priority: ["jquery", "raphael", "myapp"]
});
Run Code Online (Sandbox Code Playgroud)
但是我认为它可能只会为该文件启用它.然后我想到了这个:
<script data-main="lib/main" src="lib/require.js">"use strict"</script>
Run Code Online (Sandbox Code Playgroud)
其中任何一个都能在全局范围内启用ECMAScript 5严格模式吗?
这是我的档案: app/scripts/controllers/main.js
"use strict";
angular.module('appApp')
.controller('MainCtrl', ['$scope', function ($scope) {
$scope.awesomeThings = [
'HTML5 Boilerplate',
'AngularJS',
'Karma'
];
}]);
Run Code Online (Sandbox Code Playgroud)
我Gruntfile.coffee有:
jshint:
options:
globals:
require: false
module: false
console: false
__dirname: false
process: false
exports: false
server:
options:
node: true
src: ["server/**/*.js"]
app:
options:
globals:
angular: true
strict: true
src: ["app/scripts/**/*.js"]
Run Code Online (Sandbox Code Playgroud)
当我跑步时grunt,我得到:
Linting app/scripts/controllers/main.js ...ERROR
[L1:C1] W097: Use the function form of "use strict".
"use strict";
Run Code Online (Sandbox Code Playgroud) 我正在处理 Gulp 文件,我刚刚设置了 JSHint,我在.jshintrc文件中看到了这个选项:
“严格”:正确
然后我去了我的文件,我把它放在最开始的位置:
'use strict';
angular.module('MyApp', ['ngRoute'])
.config(function($locationProvider, $routeProvider) {. . .});
Run Code Online (Sandbox Code Playgroud)
我现在收到一个新错误
public/app.js line 1 col 1 使用“use strict”的函数形式。
所以我做了:
angular.module('MyApp', ['ngRoute'])
.config(function($locationProvider, $routeProvider) {
'use strict';
return { . . . }
});
Run Code Online (Sandbox Code Playgroud)
错误就消失了。
那么,这里有什么区别,如果我不使用严格模式会有什么问题呢?