I have this code:
if ( something is true ) {
var someVar = true;
} else {
var someVar = false;
}
JsHint is saying that "someVar was already defined" on the else statement part. Why is this and how do I fix it?
Thanks
JS variables do not have block scope, they have "function" scope (or sometimes global).
The declaration (but not the assignment) is "hoisted" to the top of the function.
jshint is warning you that you have two such declarations - your code is equivalent to:
var someVar;
var someVar; // warning!
if (something) {
someVar = true;
} else {
someVar = false;
}