JavaScript isn’t very particular about whether or not you declare your variables (its loosely typed). In fact, you can often get away without doing so. Consider the following:
x = 0; alert(x); //alerts '0' quite happily
The about example isn’t overly problematic, but that doesn’t mean that its a sensible thing to do. This, assumes you intended to do this. Consider the following:
var receivedParts = 0; recievedParts = GetReceivedParts();
Whoops! Can you spot what’s wrong? Yes, we’ve spelled ‘received’ differently (mixed the ‘e’ and ‘i’ in our typing). JavaScript doesn’t care, though.A value is assigned to the latter without complaint.
Of course we might have intended to do this, but even this is inadvisable. Consider the following:
receivedParts = receivedParts + 1;
Our variable isn’t defined, so, again we have a bug.
Of course, in strongly typed languages, this isn’t an issue. In effect, JSLint is attempting to make JavaScript a more strongly typed language.
A Guide To JSLint Messages
This article is one of a series on the error and warning messages produced by JSLint.
[...] without quotes. (removed) ‘{a}’ is not a label. ‘{a}’ is not allowed. ‘{a}’ is not defined. ‘{a}’ should not be greater than ‘{b}’. ‘{a}’ used out of [...]