- JavaScript Typeof
- Оператор typeof
- Пример
- Примитивные данные
- Пример
- Сложные данные
- Пример
- Тип данных typeof
- Оператор constructor
- Пример
- Пример
- Пример
- Пример
- Пример
- Не определено
- Пример
- Пример
- Пустые значения
- Пример
- Ноль
- Пример
- Пример
- Разница между неопределенным и нулевым
- ВЫБОР ЦВЕТА
- Сообщить об ошибке
- Ваше предложение:
- Спасибо Вам за то, что помогаете!
- Оператор typeof
- Синтаксис
- Пример
- Пример
- Пример
- Пример
- Пример
- Пример
- Пример
- Пример
- Пример
- Смотрите также
- Восемь типов данных, typeof
- Число «number»
- Число «bigint»
- Строка «string»
- Булевый (логический) тип «boolean»
- Специальное значение «null»
- Специальное значение «undefined»
- Символы «symbol»
- Объекты «object»
- Оператор typeof
- Итого
JavaScript Typeof
В JavaScript существует 5 различных типов данных, которые могут содержать значения:
Существует 6 типов объектов:
И 2 типа данных, которые не могут содержать значения:
Оператор typeof
Вы можете использовать оператор typeof , чтобы найти тип данных переменной JavaScript.
Пример
typeof «Щипунов» // Возвращает «string»
typeof 3.14 // Возвращает «number»
typeof NaN // Возвращает «number»
typeof false // Возвращает «boolean»
typeof [1,2,3,4]// Возвращает «object»
typeof // Возвращает «object»
typeof new Date() // Возвращает «object»
typeof function () <> // Возвращает «function»
typeof myCar // Возвращает «undefined» *
typeof null // Возвращает «object»
- Тип данных NaN — число
- Тип данных массива — объект
- Тип данных даты — объект
- Тип данных null — объект
- Тип данных неопределенной переменной undefined *
- Тип данных переменной, которой не было присвоено значение, также undefined *
Вы не можете использовать typeof , чтобы определить, является ли объект JavaScript массивом (или датой).
Примитивные данные
Примитивное значение данных — это одно простое значение данных без дополнительных свойств и методов.
Оператор typeof может возвращать один из следующих примитивных типов:
Пример
typeof «Щипунов» // Возвращает «string»
typeof 3.14 // Возвращает «number»
typeof true // Возвращает «boolean»
typeof false // Возвращает «boolean»
typeof x // Возвращает «undefined» (если x не имеет значения)
Сложные данные
Оператор typeof может возвращать один из двух сложных типов:
Оператор typeof возвращает «object» для объектов, массивов и null.
Оператор typeof не возвращает «object» для функций.
Пример
typeof
typeof [1,2,3,4] // Возвращает «object» (не «array», см. Примечание ниже
typeof null // Возвращает «object»
typeof function myFunc()<> // Возвращает «function»
Оператор typeof возвращает object для массивов, потому что в JavaScript массивы являются объектами.
Тип данных typeof
Оператор typeof не является переменной. Это оператор. Операторы ( + — * / ) не имеют никакого типа данных.
Но оператор typeof всегда возвращает строку (содержащую тип операнда).
Оператор constructor
Оператор constructor возвращает функцию конструктора для всех переменных JavaScript.
Пример
«Андрей».constructor // Возвращает function String() <[собственный код]>
(3.14).constructor // Возвращает function Number() <[собственный код]>
false.constructor // Возвращает function Boolean() <[собственный код]>
[1,2,3,4].constructor // Возвращает function Array() <[собственный код]>
.constructor // Возвращает function Object() <[собственный код]>
new Date().constructor // Возвращает function Date() <[собственный код]>
function () <>.constructor // Возвращает function Function() <[собственный код]>
Вы можете проверить свойство constructor, чтобы узнать, является ли объект массивом Array (содержит слово «Array»):
Пример
Или еще проще, вы можете проверить, является ли объект функцией массива Array function:
Пример
Вы можете проверить свойство конструктора, чтобы узнать, является ли объект Date (содержит слово «Date»):
Пример
Или еще проще, вы можете проверить, является ли объект функцией даты Date function:
Пример
Не определено
В JavaScript переменная без значения имеет значение undefined . Тип также undefined .
Пример
Любую переменную можно очистить, установив значение undefined . Тип также будет undefined .
Пример
Пустые значения
Пустое значение не имеет ничего общего с undefined .
Пустая строка имеет как юридическое значение, так и тип.
Пример
Ноль
В JavaScript null — это «ничего». Предполагается, что это нечто такое, чего не существует.
К сожалению, в JavaScript тип данных null является объектом.
Вы можете считать ошибкой в JavaScript то, что typeof null является объектом. Он должен быть null .
Вы можете очистить объект, установив для него значение null :
Пример
Вы также можете очистить объект, установив для него значение undefined :
Пример
Разница между неопределенным и нулевым
undefined и null равны по стоимости, но различны по типу:
typeof undefined // undefined
typeof null // object
null === undefined // false
null == undefined // true
Мы только что запустили
SchoolsW3 видео
ВЫБОР ЦВЕТА
Сообщить об ошибке
Если вы хотите сообщить об ошибке или внести предложение, не стесняйтесь отправлять на электронное письмо:
Ваше предложение:
Спасибо Вам за то, что помогаете!
Ваше сообщение было отправлено в SchoolsW3.
ТОП Учебники
ТОП Справочники
ТОП Примеры
Получить сертификат
SchoolsW3 оптимизирован для бесплатного обучения, проверки и подготовки знаний. Примеры в редакторе упрощают и улучшают чтение и базовое понимание. Учебники, ссылки, примеры постоянно пересматриваются, чтобы избежать ошибок, но не возможно гарантировать полную правильность всего содержания. Некоторые страницы сайта могут быть не переведены на РУССКИЙ язык, можно отправить страницу как ошибку, так же можете самостоятельно заняться переводом. Используя данный сайт, вы соглашаетесь прочитать и принять Условия к использованию, Cookies и политика конфиденциальности.
Оператор typeof
Оператор typeof позволяет определить тип параметра (число, строка, объект). Оператор возвращает строку, содержащую тип ( ‘number’ , ‘string’ , ‘object’ ).
Для null оператор возвращает ‘object’ (это признанная ошибка языка). Для функций оператор возвращает ‘function’ . Это сделано для удобства, так как типа ‘function’ не существует.
Синтаксис
У оператора typeof есть 2 синтаксиса (оба синтаксиса работают одинаково):
Пример
Давайте посмотрим, как typeof работает с числом:
В результате выполненного кода мы получим значение number :
Пример
Теперь давайте зададим в параметре строку:
Результат выполнения кода:
Пример
Теперь укажем в параметре булевое значение true :
Результат выполнения кода:
Пример
Давайте посмотрим какой тип у значения undefined :
После выполнения кода мы получим также undefined :
Пример
Теперь давайте узнаем тип пустого объекта:
Результат выполнения кода:
Пример
А теперь узнаем тип пустого массива:
В результате также получим ‘object’ :
Пример
Давайте узнаем тип значения null :
В результате также получим ‘object’ , что является признанной ошибкой языка:
Пример
Теперь определим тип пустой функции:
После выполнения кода мы получим ‘function’ , несмотря на то, что такого типа не существует. Данная строка нужна для удобства пользователя при определении функции:
Пример
Напишем функцию, которая будет выводить только числа:
Смотрите также
- функцию isNaN ,
которая осуществляет проверку на NaN - функцию isFinite ,
которая проверяет число на конечность
Восемь типов данных, typeof
Материал на этой странице устарел, поэтому скрыт из оглавления сайта.
Более новая информация по этой теме находится на странице https://learn.javascript.ru/types.
В JavaScript существует несколько основных типов данных.
В этой главе мы получим о них общее представление, а позже, в соответствующих главах подробно познакомимся с использованием каждого типа в отдельности.
Число «number»
Единый тип число используется как для целых, так и для дробных чисел.
Существуют специальные числовые значения Infinity (бесконечность) и NaN (ошибка вычислений).
Например, бесконечность Infinity получается при делении на ноль:
Ошибка вычислений NaN будет результатом некорректной математической операции, например:
alert( "нечисло" * 2 ); // NaN, ошибка
Эти значения формально принадлежат типу «число», хотя, конечно, числами в их обычном понимании не являются.
Особенности работы с числами в JavaScript разобраны в главе Числа.
Число «bigint»
В JavaScript тип «number» не может содержать числа больше, чем 2 53 (или меньше, чем -2 53 для отрицательных). Это техническое ограничение вызвано их внутренним представлением. 2 53 – это достаточно большое число, состоящее из 16 цифр, поэтому чаще всего проблем не возникает. Но иногда нам нужны действительно гигантские числа, например в криптографии или при использовании метки времени («timestamp») с микросекундами.
Тип BigInt был добавлен в JavaScript, чтобы дать возможность работать с целыми числами произвольной длины.
Чтобы создать значение типа BigInt , необходимо добавить n в конец числового литерала:
// символ "n" в конце означает, что это BigInt const bigInt = 1234567890123456789012345678901234567890n;
Более подробно тип данных BigInt мы рассмотрим в отдельной главе BigInt.
Строка «string»
var str = "Мама мыла раму"; str = 'Одинарные кавычки тоже подойдут';
В JavaScript одинарные и двойные кавычки равноправны. Можно использовать или те или другие.
В некоторых языках программирования есть специальный тип данных для одного символа. Например, в языке С это char . В JavaScript есть только тип «строка» string . Что, надо сказать, вполне удобно.
Более подробно со строками мы познакомимся в главе Строки.
Булевый (логический) тип «boolean»
У него всего два значения: true (истина) и false (ложь).
Как правило, такой тип используется для хранения значения типа да/нет, например:
var checked = true; // поле формы помечено галочкой checked = false; // поле формы не содержит галочки
О нём мы поговорим более подробно, когда будем обсуждать логические вычисления и условные операторы.
Специальное значение «null»
Значение null не относится ни к одному из типов выше, а образует свой отдельный тип, состоящий из единственного значения null :
В JavaScript null не является «ссылкой на несуществующий объект» или «нулевым указателем», как в некоторых других языках. Это просто специальное значение, которое имеет смысл «ничего» или «значение неизвестно».
В частности, код выше говорит о том, что возраст age неизвестен.
Специальное значение «undefined»
Значение undefined , как и null , образует свой собственный тип, состоящий из одного этого значения. Оно имеет смысл «значение не присвоено».
Если переменная объявлена, но в неё ничего не записано, то её значение как раз и есть undefined :
var x; alert( x ); // выведет "undefined"
Можно присвоить undefined и в явном виде, хотя это делается редко:
var x = 123; x = undefined; alert( x ); // "undefined"
В явном виде undefined обычно не присваивают, так как это противоречит его смыслу. Для записи в переменную «пустого» или «неизвестного» значения используется null .
Символы «symbol»
«Символ» представляет собой уникальный идентификатор.
Создаются новые символы с помощью функции Symbol() :
// Создаём новый символ - id let
При создании символу можно дать описание (также называемое имя), в основном использующееся для отладки кода:
// Создаём символ id с описанием (именем) "id" let
Символы гарантированно уникальны. Даже если мы создадим множество символов с одинаковым описанием, это всё равно будут разные символы. Описание – это просто метка, которая ни на что не влияет.
Например, вот два символа с одинаковым описанием – но они не равны:
let id1 = Symbol("id"); let id2 = Symbol("id"); alert(id1 == id2); // false
Более подробно c символами мы познакомимся в главе Тип данных Symbol.
Объекты «object»
Первые 7 типов называют «примитивными».
Особняком стоит восьмой тип: «объекты».
Он используется для коллекций данных и для объявления более сложных сущностей.
Объявляются объекты при помощи фигурных скобок <. >, например:
Мы подробно разберём способы объявления объектов и, вообще, работу с объектами, позже, в главе Объекты.
Оператор typeof
Оператор typeof возвращает тип аргумента.
У него есть два синтаксиса: со скобками и без:
Работают они одинаково, но первый синтаксис короче.
Результатом typeof является строка, содержащая тип:
typeof undefined // "undefined" typeof 0 // "number" typeof 1n // "bigint" typeof true // "boolean" typeof "foo" // "string" typeof Symbol() // "symbol" typeof <> // "object" typeof null // "object" (1) typeof function()<> // "function" (2)
Последние две строки помечены, потому что typeof ведёт себя в них по-особому.
- Результат typeof null == «object» – это официально признанная ошибка в языке, которая сохраняется для совместимости. На самом деле null – это не объект, а отдельный тип данных.
- Функции мы пройдём чуть позже. Пока лишь заметим, что функции не являются отдельным базовым типом в JavaScript, а подвидом объектов. Но typeof выделяет функции отдельно, возвращая для них «function» . На практике это весьма удобно, так как позволяет легко определить функцию.
К работе с типами мы также вернёмся более подробно в будущем, после изучения основных структур данных.
Итого
Есть 5 «примитивных» типов: number , string , boolean , null , undefined и 6-й тип – объекты object .
Очень скоро мы изучим их во всех деталях.
Оператор typeof x позволяет выяснить, какой тип находится в x , возвращая его в виде строки.