Как проверить определена ли переменная на JavaScript

Здравствуйте. Начну из далека.
Сегодня мне потребовалось вывести диалоговое окно при нажатии кнопки, на JS (парсер BBcode). Диалоговое окно состоит из одного поля, куда вводится строка и двух кнопок Ok и Отмена. Это окно я хочу использовать для ввода url, пользователь нажимает BBcode URL, появляется окно, пользователь вводит адрес, затем жмет кнопку Ok, и введенный адрес появляется в textarea, уже с BBcode. Я посчитал, что это будет удобно.
// Назначили переменной "url" введенный адрес
var url = prompt(paste_url, '');
// Вставляем BBcode вместе с URL в textarea
obj.v = v.substr(0, start) + '[' + tag + '=' + url + ']' + url + '[/' + tag + ']' + v.substr(start);

Все просто и удобно!
Но тут я подумал о том, что пользователь может передумать вводить какой то адрес, после того, как нажмет на кнопку (кто та может так быстро передумать?), но теперь ему придется нажать на одну из двух кнопок (Ok или Отмена), что бы продолжить работу в редакторе, после чего в textarea будет вставлен BBcode, не важно было, что то введено или нет. Выглядит это конечно некрасиво и на мой взгляд недопустимо. Тут нужна проверка - было ли что то введено в поле или нет, то есть надо проверить переменную на пустоту.

Я знаю несколько способов, как проверить определена ли переменная на JavaScript, правда не все пробовал.
И так я делаю проверку на пустоту переменной, если переменная не пустая, сценарий вставит тег в textarea вместе с введенным адресом. Первое, что я попробовал выглядело так:
if (url != '')

Теперь если поле осталось не заполненным, а кнопка Ok была нажата, то в textarea ничего не попадает, но если нажать кнопку Отмена, BBcode все ровно попадает в поле редактора текста, со значением null. А это говорит о том, что данная проверка мне не подходит. Пробую ещё:
if (url != undefined)

И этот вариант меня не устраивает, по той же причине, что и первый.
Что первые два варианта мне не подошли - это даже хорошо, потому что я решил вставить в условие просто переменную, без всяких сравнений:
if (url)

Именно такая проверка прошла мою проверку (тавтольгнул)! Теперь при пустой форме и нажатой, любой кнопки в textarea ни чего не вставляется, что мне и надо. Но я придирчив до ужаса (наверно) и решил попробовать ввести в поле пробел и бац в textarea попадает тег. Тут придется убирать пробелы, нашел такое решение:
url = url.replace(/\s+/g, '');

После этой замены хоть сто пробелов ставь, работает, как часики!
В итоге код получился таким:
// Назначили переменной "url" введенный адрес
var url = prompt(paste_url, '');
// Удаляем пробелы, если они есть
url = url.replace(/\s+/g, '');
// Проверяем определена ли переменная, если определена, вставляем тег
if (url)
{
    // Вставляем BBcode вместе с URL в textarea
    obj.v = v.substr(0, start) + '[' + tag + '=' + url + ']' + url + '[/' + tag + ']' + v.substr(start);
}

Конечно данный сценарий ещё допиливать и допиливать, например можно проверить корректность введенного адреса, не запрещен ли введенный адрес и так далее, но тема не об этом.

Ещё один вариант проверки определена ли переменная:
if (typeof value !== 'undefined') {
    // Переменная определена
};


И напоследок, написал простенькую функцию, которая будет проверять определена ли переменная или нет, если определена вернет true, если нет false. Функцию назвал, как в PHP: isset(). Код функции:
function isset(val) {
    val = val.replace(/\s+/g, '');           // Удаление пробелов в начале и в конце строки
    if (typeof val !== 'undefined' && val) { // Проверка переменной
        return true;   // Переменная определена, возвращаем "true"
    };

    return false;     // Переменная не определена, возвращаем "false"
};

Пример использования:
var val = 'Значение'; // Создаем переменную
if (isset(val)) { // Проверяем переменную
    alert('Переменная определена.');
}
else {
    alert('Переменная не определена.');
};

Код из примера выведет сообщение Переменная определена., так как она действительно определена.
Автор: