Что не так с определением переменных JavaScript внутри блоков if?

У меня есть такой код:

if (condition) {
var variable = blah;
}

if (differentcondition) {
var variable = blah;
}

Это правильно?

Я предполагаю, что переменная не будет назначена, если условие не возвращает истину.

JSLint продолжает говорить мне, переменная уже определена.

Я делаю это неправильно?

Благодарю.

Хорошо, вот мой фактический сценарий использования, я делаю делегирование событий следующим образом:

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

});

На самом деле эти 2 класса не являются взаимоисключающими.

Это работает для меня, но правильно ли это?

Ответы были очень информативными, но я все еще не понимаю, как мне установить переменные здесь.

На самом деле я также хочу сказать, что определенные условия являются взаимоисключающими, а определенные условия - нет.

Как мне это структурировать?

Я, вероятно, должен был использовать этот пример с самого начала.

Ответы на вопрос(5)

Ваш ответ на вопрос