javascript проверить существование объекта

Как проверить существование объекта в JavaScript?

но это вызывает ошибку:

Ошибки:

16 ответов:

Вы можете безопасно использовать typeof оператор для неопределенных переменных.

если ему было присвоено какое-либо значение, включая null, typeof вернет что-то другое, кроме undefined. typeof всегда возвращает строку.

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

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

причина в том, что Javascript имеет это пресловутое значение undefined что поразительно, не означает, что переменная не определена, или не существует undefined !== not defined

Итак, как переменная, которая существует, так и другая, которая не может сообщить вам undefined тип.

что касается заблуждения @Kevin, null == undefined . Это связано с принуждением типа, и это главная причина, по которой Крокфорд продолжает говорить всем, кто не уверен в этом, всегда использовать строгий оператор равенства === для проверки возможных ложных значений. null !== undefined дает вам то, что вы могли бы ожидать. Обратите внимание, что foo != null может быть эффективным способом проверить, не является ли переменная ни undefined , ни null . Конечно, вы можете быть явным, потому что это может помочь удобочитаемости.

если вы ограничиваете вопрос, чтобы проверить, существует ли объект, typeof o == «object» может быть хорошей идеей, за исключением тех случаев, когда вы не рассматриваете объекты массивов, так как это также будет указано как тип object что может оставить вас немного запутался. Не говоря уже о том, что typeof null также даст вам object это просто неправильно.

первичная область, где вы действительно должны быть осторожны typeof , undefined , null , unknown и другие тайны размещения объектов. Им нельзя доверять. Они вольны делать почти любую грязную вещь, которую они хотят. Поэтому будьте осторожны с ними, проверьте функциональность, если можете, потому что это единственный безопасный способ использовать функцию, которая может даже не существовать.

Как мне проверить существование объекта в JavaScript?

Но это выдает ошибку:

Ошибка:

Вы можете безопасно использовать оператор typeof для переменных undefined.

Если ему присвоено какое-либо значение, включая null, typeof вернет что-то, кроме undefined. typeof всегда возвращает строку.

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

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

Причина Javascript имеет это печально известное значение undefined , которое поразительно не означает, что переменная не определена или что она не существует undefined !== not defined

Таким образом, и переменная, которая существует, и другая, которая не может сообщить вам тип undefined .

Что касается неправильного понимания @Kevin, null == undefined . Это связано с типом принуждения, и это главная причина, по которой Крокфорд продолжает рассказывать всем, кто не уверен в этом, всегда использовать строгого оператора равенства === для проверки возможных значений фальши. null !== undefined дает вам то, что вы ожидаете. Также обратите внимание, что foo != null может быть эффективным способом проверить, не является ли переменная ни undefined , ни null . Конечно, вы можете быть явным, потому что это может помочь читаемости.

Если вы ограничиваете вопрос проверкой существования объекта, typeof o == «object» может быть хорошей идеей, за исключением случаев, когда вы не рассматриваете объекты массивов, так как это также будет отображаться как тип object , который может покинуть вы немного смущены. Не говоря уже о том, что typeof null также даст вам object , что просто неправильно.

Основная область, где вы действительно должны быть осторожны в отношении typeof , undefined , null , unknown и других misteries, являются объектами хоста. Им нельзя доверять. Они могут делать практически любую грязную вещь, которую они хотят. Поэтому будьте осторожны с ними, проверяйте функциональность, если можете, потому что это единственный безопасный способ использования функции, которая может даже не существовать.

Поиск по форуму
Расширенный поиск
К странице.

Илья Кантор, 22 мая 2009 — 16:34

Описание, примеры

Вызов typeof возвращает строку, содержащую информацию о типе операнда.

Оператор typeof используется в двух формах:

Эти формы идентичны: можно использовать скобки, а можно и не использовать — работает одинаково.

Оператор возвращает тип в виде строки, например:

Тип typeof возвращается, исходя из следующей таблицы соответствия типам javascript:

Тип Результат
Undefined «undefined»
Null «object»
Boolean «boolean»
Number «number»
String «string»
Function «function»
Любой другой объект «object»

Часто возникают вопросы — почему и зачем таблица именно такая? Ответ простой: потому что так получилось по ходу развития javascript.

В старом javascript-коде можно увидеть применение typeof для проверки существования переменной:

В современном javascript лучше писать:

или, зачастую, подойдет и просто:

P.S. Использовать просто if(var) нельзя, так как доступ к неопределенной переменной вызовет ошибку. Ну а обращение к отсутствующему свойству глобального объекта window всего лишь вернет undefined

Кроме того, оператор typeof используется для полиморфизма. Например, следующая функция получает узел DOM или ID узла и в обоих случаях корректно прячет узел.

Оцените статью
SoftLast
Добавить комментарий