I have this code:
if ( something is true ) {
var someVar = true;
} else {
var someVar = false;
}
JsHint is saying that
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;
}