JavaScript typeof
В JavaScript є 5 різних типів даних, що можуть містити значення:
string
(рядок)number
(число)boolean
(булеве значення)object
(об’єкт)function
(функція)
Існує 6 типів об’єктів:
Object
(Об’єкт)Date
(Дата)Array
(Масив)String
(Рядок)Number
(Число)Boolean
(Булеве значення)
Та 2 типи даних, що не можуть містити значення:
null
(нуль)undefined
(не визначено)
Оператор typeof
Ви можете використовувати оператор typeof
для пошуку типу даних JavaScript змінних.
Приклад
typeof "John" // Поверне "string"
typeof 3.14 // Поверне "number"
typeof NaN // Поверне "number"
typeof false // Поверне "boolean"
typeof [1,2,3,4] // Поверне "object"
typeof {name:'John', age:34} // Поверне "object"
typeof new Date() // Поверне "object"
typeof function () {} // Поверне "function"
typeof myCar // Поверне "undefined" *
typeof null // Поверне "object"
Спробуйте самі »
Зверніть увагу:
- Тип даних NaN - це число
- Тип даних масиву - це об’єкт
- Тип даних date - це об’єкт
- Тип даних null - це об’єкт
- Тип даних невизначеної змінної - це undefined *
- Тип даних змінної, якій не було присвоєно значення - це також undefined *
Ви не можете використовувати typeof
, щоб визначити, чи є JavaScript об’єкт масивом (або датою).
Примітивні дані
Примітивне значення даних - це одне просте значення даних без додаткових властивостей і методів.
Оператор typeof
може повертати один із цих примітивних типів:
string
number
boolean
undefined
Приклад
typeof "John" // Поверне "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:'John', 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 змінних.
Приклад
"John".constructor // Поверне function String() {[native code]}
(3.14).constructor
// Поверне function Number() {[native code]}
false.constructor // Поверне function Boolean() {[native code]}
[1,2,3,4].constructor // Поверне function Array() {[native code]}
{name:'John',age:34}.constructor // Поверне function Object() {[native code]}
new Date().constructor // Поверне function Date() {[native code]}
function () {}.constructor // Поверне function Function(){[native code]}
Спробуйте самі »
Ви можете перевірити властивість конструктора, щоб дізнатись, чи є об’єкт Array
(містить слово "Array"):
Приклад
function isArray(myArray) {
return myArray.constructor.toString().indexOf("Array") > -1;
}
Спробуйте самі »
Або навіть простіше, ви можете перевірити, чи є об’єкт Array функцією:
Ви можете перевірити властивість конструктора, щоб дізнатись, чи є об’єкт Date
(містить слово "Date"):
Приклад
function isDate(myDate) {
return myDate.constructor.toString().indexOf("Date") > -1;
}
Або навіть простіше, ви можете перевірити, чи є об’єкт Date функцією:
Undefined
В JavaScript змінна без значення має значення undefined
. Тип є також undefined
.
Будь-яку змінну можна очистити, встановивши значення undefined
. Тип також буде undefined
.
Пусті значення
Пусте значення не має нічого спільного з undefined
.
Пустий рядок має як допустиме значення, так і тип.
Null
В JavaScript null
означає "нічого". Це має бути щось, чого не існує.
На жаль, в JavaScript тип даних null
є об’єктом.
typeof null
є об’єктом. Це має бути null
.
Ви можете очистити об’єкт, встановивши для нього null
:
Приклад
let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = null; // Тепер значення є null, але тип так само є об’єктом
Спробуйте самі »
Ви можете також очистити об’єкт, встановивши для нього undefined
:
Приклад
let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = undefined; // Тепер обидва - значення та тип є undefined
Спробуйте самі »
Відмінності між Undefined та Null
undefined
та null
рівні в значенні, але різні по типу:
typeof undefined // undefined
typeof null // object
null === undefined // false
null == undefined // true
Спробуйте самі »