typeof
Описание, примеры
Вызов typeof возвращает строку, содержащую информацию о типе операнда.
Оператор typeof используется в двух формах:
- typeof operand
- typeof (operand)
Эти формы идентичны: можно использовать скобки, а можно и не использовать - работает одинаково.
Оператор возвращает тип в виде строки, например:
Тип typeof возвращается, исходя из следующей таблицы соответствия типам javascript:
| Тип |
Результат |
| Undefined |
"undefined" |
| Null |
"object" |
| Boolean |
"boolean" |
| Number |
"number" |
| String |
"string" |
| Function |
"function" |
| Любой другой объект |
"object" |
Часто возникают вопросы - почему и зачем таблица именно такая? Ответ
простой: потому что так получилось по ходу развития javascript.
В старом javascript-коде можно увидеть применение typeof для проверки существования переменной:
if (typeof(var) == "undefined") { ... } |
В современном javascript лучше писать:
if (window.var !== undefined) { ... } |
или, зачастую, подойдет и просто:
P.S. Использовать просто if(var) нельзя, так как доступ к
неопределенной переменной вызовет ошибку. Ну а обращение к
отсутствующему свойству глобального объекта window всего лишь вернет undefined
Кроме того, оператор typeof используется для
полиморфизма. Например, следующая функция получает узел DOM или ID узла и
в обоих случаях корректно прячет узел.
1 | function hideNode(node) { |
2 | if (typeof node == 'string') { |
3 | node = document.getElementById(node) |
5 | node.style.display = 'none' |