O que há de errado em definir variáveis ​​JavaScript dentro de blocos se?

Eu tenho um código como este:

if (condition) {
var variable = blah;
}

if (differentcondition) {
var variable = blah;
}

Isso está correto?

Eu suponho que a variável não seria atribuída se a condição não retornasse true.

O JSLint continua me dizendo, variável já definida.

Estou fazendo isso errado?

Obrigado.

OK, aqui está meu usecase real, estou fazendo uma delegação de eventos como esta:

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

});

Na verdade, essas duas classes não são mutuamente exclusivas.

Isso funciona para mim, mas está correto?

As respostas foram muito informativas, mas ainda não entendi como devo configurar as variáveis ​​aqui.

Na verdade, também quero dizer que certas condições são mutuamente exclusivas e certas condições não são.

Como devo estruturar isso?

Eu provavelmente deveria ter usado esse exemplo desde o começo.

questionAnswers(5)

yourAnswerToTheQuestion