Co jest złego w definiowaniu zmiennych JavaScript w obrębie bloków?

Mam taki kod:

if (condition) {
var variable = blah;
}

if (differentcondition) {
var variable = blah;
}

Czy to jest poprawne?

Zakładam, że zmienna nie zostanie przypisana, jeśli warunek nie zwróci prawdy.

JSLint ciągle mi mówi, zmienna już zdefiniowana.

Czy robię to źle?

Dzięki.

OK, oto moja aktualna skrzynka, robię delegację wydarzeń w ten sposób:

$("#container").click(function (event){ 

    if ($(event.target).is('img.class1')) {
        var imagesrc = $(event.target).attr('src');
        // Do something with imagesrc
    }

    if ($(event.target).is('img.class2')) {
        var imagesrc = $(event.target).attr('src');
        // Do something with imagesrc
    }

    // This condition is mutually exclusive to the above 2
    if ($(event.target).is('img.class3')) {
        var imagesrc = $(event.target).attr('src');
        // Do something with imagesrc
    }

    // This condition is mutually exclusive to 1 and 2 but not to 3
    if ($(event.target).is('img.class4')) {
        var imagesrc = $(event.target).attr('src');
        // Do something with imagesrc
    }

});

Właściwie te dwie klasy nie wykluczają się wzajemnie.

To działa dla mnie, ale czy jest poprawne?

Odpowiedzi były bardzo pouczające, ale nadal nie rozumiem, jak powinienem tutaj ustawić zmienne.

Właściwie chcę powiedzieć, że pewne warunki wzajemnie się wykluczają, a pewne warunki nie.

Jak mam to ustrukturyzować?

Prawdopodobnie powinienem użyć tego przykładu od początku.

questionAnswers(5)

yourAnswerToTheQuestion