JavaScript Typeof
В JavaScript существует 5 различных типов данных, которые могут содержать значения:
string
number
boolean
object
function
Существует 6 типов объектов:
Object
Date
Array
String
Number
Boolean
И 2 типа данных, которые не могут содержать значения:
null
undefined
Оператор typeof
Вы можете использовать оператор typeof
, чтобы найти тип данных переменной JavaScript.
Пример
typeof "Щипунов" // Возвращает "string"
typeof 3.14 // Возвращает "number"
typeof NaN // Возвращает "number"
typeof false // Возвращает "boolean"
typeof [1,2,3,4]// Возвращает "object"
typeof {name:'Щипунов', age:34} // Возвращает "object"
typeof new Date() // Возвращает "object"
typeof function () {} // Возвращает "function"
typeof myCar // Возвращает "undefined" *
typeof null // Возвращает "object"
Попробуйте сами »
Пожалуйста, соблюдайте:
- Тип данных NaN - число
- Тип данных массива - объект
- Тип данных даты - объект
- Тип данных null - объект
- Тип данных неопределенной переменной undefined *
- Тип данных переменной, которой не было присвоено значение, также undefined *
Вы не можете использовать typeof
, чтобы определить, является ли объект JavaScript массивом (или датой).
Примитивные данные
Примитивное значение данных - это одно простое значение данных без дополнительных свойств и методов.
Оператор typeof
может возвращать один из следующих примитивных типов:
string
number
boolean
undefined
Пример
typeof "Щипунов" // Возвращает "string"
typeof 3.14 // Возвращает "number"
typeof true // Возвращает "boolean"
typeof false // Возвращает "boolean"
typeof x // Возвращает "undefined" (если x не имеет значения)
Попробуйте сами »
Сложные данные
Оператор typeof
может возвращать один из двух сложных типов:
function
object
Оператор typeof
возвращает "object" для объектов, массивов и null.
Оператор typeof
не возвращает "object" для функций.
Пример
typeof {name:'Щипунов', age:34} // Возвращает "object"
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() {[собственный код]}
{name:'Андрей',age:34}.constructor // Возвращает function Object() {[собственный код]}
new Date().constructor // Возвращает function Date() {[собственный код]}
function () {}.constructor // Возвращает function Function(){[собственный код]}
Попробуйте сами »
Вы можете проверить свойство constructor, чтобы узнать, является ли объект массивом Array
(содержит слово "Array"):
Пример
function isArray(myArray) {
return myArray.constructor.toString().indexOf("Array") > -1;
}
Попробуйте сами »
Или еще проще, вы можете проверить, является ли объект функцией массива Array function:
Вы можете проверить свойство конструктора, чтобы узнать, является ли объект Date
(содержит слово "Date"):
Пример
function isDate(myDate) {
return myDate.constructor.toString().indexOf("Date") > -1;
}
Попробуйте сами »
Или еще проще, вы можете проверить, является ли объект функцией даты Date function:
Не определено
В JavaScript переменная без значения имеет значение undefined
. Тип также undefined
.
Любую переменную можно очистить, установив значение undefined
. Тип также будет undefined
.
Пустые значения
Пустое значение не имеет ничего общего с undefined
.
Пустая строка имеет как юридическое значение, так и тип.
Ноль
В JavaScript null
- это "ничего". Предполагается, что это нечто такое, чего не существует.
К сожалению, в JavaScript тип данных null
является объектом.
Вы можете считать ошибкой в JavaScript то, что typeof null
является объектом. Он должен быть null
.
Вы можете очистить объект, установив для него значение null
:
Пример
let person = {firstName:"Щипунов", lastName:"Андрей", age:50, eyeColor:"зеленый"};
person = null; // Теперь значение равно нулю, но тип по-прежнему является объектом
Попробуйте сами »
Вы также можете очистить объект, установив для него значение undefined
:
Пример
let person = {firstName:"Щипунов", lastName:"Андрей", age:50, eyeColor:"зеленый"};
person = undefined; // Теперь и значение, и тип не определены
Попробуйте сами »
Разница между неопределенным и нулевым
undefined
и null
равны по стоимости, но различны по типу:
typeof undefined // undefined
typeof null // object
null === undefined // false
null == undefined // true
Попробуйте сами »