Hi,
I've took some time to look at jshint checks found
on our code:
http://ci.phpmyadmin.net/job/phpMyAdmin-continuous/3132/violations/?#jslint
I've fixed some obvious ones (like missing ;, typecast safe comparing,
missing radix for parseInt), but there are still many of them. Most of
them fit into following case:
- ['strSave'] is better written in dot notation.
This error is raised to highlight an unnecessarily verbose and
potentially confusing piece of code. More detailed explanation is at:
http://jslinterrors.com/a-is-better-written-in-dot-notation/
- 'type' is already defined. / 'type' used out of scope.
Most of these come from following constructs:
if (foo) {
var bar = 1;
} else {
var bar = 1;
}
alert(bar);
This is not an issue for javascript (it has no block scope for
variables), it can be confusing, more details at:
http://www.jshint.com/docs/#funcscope
So both are more just matter of coding style rather than real bug and
can be disabled in jshint. The question is whether we would prefer to
hide these warnings or fix them.
About the JSHint (or JSLint), there are some opintions which can be customed by users to
decide whether the warning should be evoked.
Like JSHint:
http://www.jshint.com/
Warn
About debugging code
About unsafe for..in
About == null
About arguments.caller and .callee
About empty blocks
About unsafe comparisons
About assignments inside if/for/...
About functions inside loops
About eval
About unsafe line breaks
When bitwise operators are used
When code is not in strict mode
When variable is undefined
When variable is defined but not used
When blocks omit {}
When new is used for side effects
If we want to fix the JSHint warning, we should firstly decide which warnings should be
fixed. thanks
BTW, I would like to join and fix some warnings.
Adam