Подтвердить что ты не робот

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

Как проверить, определена ли переменная JavaScript в браузере?

Я столкнулся с этой проблемой при написании JavaScript, использующего протоколирование FireBug. Я написал код, как показано ниже:

function profileRun(f) {
    // f: functions to be profiled
    console.profile(f.constructor);
    f();
    console.profileEnd(f.constructor);
}

Он отлично работает в FireFox/FireBug, но он сообщает об ошибке в IE8 RC1. Итак, я бы хотел проверить, существует ли консольная переменная в рабочей среде.

Ниже код работает отлично в FireFox, но не в IE8 RC1.

function profileRun(f) {
    if (console != undefined) {
        console.profile(f.constructor);
    }

    f();

    if (console != undefined) {
        console.profileEnd(f.constructor);
    }
}

Однако, если я так делаю. Он работает в IE8 RC1. Зачем?

function profileRun(f) {
    if (window.console != undefined) {
        console.profile(f.constructor);
    }

    f();

    if (window.console != undefined) {
        console.profileEnd(f.constructor);
    }
}

Есть ли способ перекрестного браузера проверить?

4b9b3361