Was ist falsch daran, JavaScript-Variablen in if-Blöcken zu definieren?

Ich habe einen Code wie diesen:

if (condition) {
var variable = blah;
}

if (differentcondition) {
var variable = blah;
}

Ist das richtig?

Ich gehe davon aus, dass die Variable nicht zugewiesen wird, wenn die Bedingung nicht true zurückgibt.

JSLint sagt mir immer wieder, dass die Variable bereits definiert ist.

Mache ich das falsch?

Vielen Dank.

OK, hier ist mein eigentlicher Verwendungszweck, ich mache eine Event-Delegation wie folgt:

$("#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
    }

});

Tatsächlich schließen sich diese beiden Klassen nicht gegenseitig aus.

Das funktioniert bei mir, aber ist es richtig?

Die Antworten waren sehr informativ, aber ich verstehe immer noch nicht, wie ich die Variablen hier einrichten soll.

Eigentlich möchte ich auch sagen, dass sich bestimmte Bedingungen gegenseitig ausschließen und bestimmte Bedingungen nicht.

Wie soll ich das strukturieren?

Ich hätte dieses Beispiel wahrscheinlich von Anfang an verwenden sollen.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage