powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / необъявленная переменная
9 сообщений из 9, страница 1 из 1
необъявленная переменная
    #36086566
AlexNZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Случай, когда переменная неопределена довольно прост
Код: plaintext
1.
2.
3.
4.
function f(variable)
{
    variable++;
}
f();
Вызвали f, а параметр не передали. Типа "параметр по умолчанию". Это обработать просто.
typeof variable == "undefined"
но переменная тут объявлена, хоть и не определено её значение и тип.

Другая история, когда приходит массив (ajax, например), в котором может не оказаться ключа.
Как это грамотно проверить?

Методика typeof variable2 == "undefined" создаёт ошибку.

Конечно можно использовать try/catch
Код: plaintext
1.
2.
try{
	variable2++;
}catch(e){/*...*/}
Но вопрос не об этом, как именно проверить?
...
Рейтинг: 0 / 0
необъявленная переменная
    #36086582
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно проверять на нулл.
...
Рейтинг: 0 / 0
необъявленная переменная
    #36086591
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexNZДругая история, когда приходит массив (ajax, например), в котором может не оказаться ключа.
Как это грамотно проверить?
Код: plaintext
1.
2.
3.
var a = {b: 1 };
alert('b' in a); // true (ключ "b" есть в а)
alert('c' in a); // false ("с" нету)

Если я правильно понял, что нужно
...
Рейтинг: 0 / 0
необъявленная переменная
    #36086596
AlexNZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это пройденый этап. Пробовал и на null проверять... Но null это значение, даже тип имеет. )
Ситуация в том, что с ним нечего сравнивать, нет имени переменной до использования.
...
Рейтинг: 0 / 0
необъявленная переменная
    #36086615
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexNZМетодика typeof variable2 == "undefined" создаёт ошибку.Вопрос в том, есть ли глобальная переменная variable2 ?

Код: plaintext
1.
'variable2' in window
...
Рейтинг: 0 / 0
необъявленная переменная
    #36086631
AlexNZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, Яростный Меч.
Методика работает.

Рассматривался случай, когда variable2 отсутствует вообще как понятие, т.е. в window тоже нет.

Еще раз спасибо. )
...
Рейтинг: 0 / 0
необъявленная переменная
    #36086675
AlexNZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Однако и тут есть западня.

Прежде чем использовать оператор in нужно убедиться, что имеем дело с объектом. В случае пустого массива, после json, может оказаться что это строка, а оператор in к ней неприменим.

Это при том, что в javascript строка тоже объект. : - )

Т.е. проверяем
Код: plaintext
typeof arr == 'object' && 'a' in arr
...
Рейтинг: 0 / 0
необъявленная переменная
    #36087063
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"undefined" - это стринговое значение
Проверять надо не на "undefined", а на undefined.
...
Рейтинг: 0 / 0
необъявленная переменная
    #36090247
AlexNZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемый IDVsbruck,
typeof как раз и возвращает строку (именно, как вы выразились, "стринговое значение")

Мануальная терапия:
typeof returns one of the following strings:
number
string
boolean
object
function
undefined
typeof(typeof(x)) is always string, no matter what x actually is.

Каждое из значений - строка, потому и сравнивать надо со строкой.

RTFM!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / необъявленная переменная
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]