Типы данных
В JavaScript существует 5 различных типов данных, которые могут содержать значения:
string
number
boolean
object
function
Существует 6 типов объектов:
Object
Date
Array
String
Number
Boolean
И 2 типа данных, которые не могут содержать значений:
null
undefined
Тип оператора
Вы можете использовать оператор typeof
, чтобы найти тип данных переменной JavaScript.
typeof "John" // Returns "string" typeof 3.14 // Returns "number" typeof NaN // Returns "number" typeof false // Returns "boolean" typeof [1,2,3,4] // Returns "object" typeof {name:'John', age:34} // Returns "object" typeof new Date() // Returns "object" typeof function () {} // Returns "function" typeof myCar // Returns "undefined" typeof null // Returns "object"
Вы не можете использовать
typeof
, чтобы определить, является ли объект JavaScript массивом (или датой).
Неопределенный
В JavaScript переменная без значения имеет значение undefined
. Тип также undefined
.
var car; // Value is undefined, type is undefined
Нулевой
В JavaScript null
означает «ничего». Предполагается, что это нечто несуществующее, тип данных null
является объектом.
Вы можете считать ошибкой в JavaScript, что typeof null
является объектом. Должно быть null
.
var person = { firstName: "John", lastName: "Doe" }; person = null; // Now value is null, but type is still an object
Неопределенный и нулевой
undefined
и null
равны по значению, но различны по типу:
typeof undefined // undefined typeof null // object null === undefined // false null == undefined // true
Примитивные данные
Примитивное значение данных — это одно простое значение данных без дополнительных свойств и методов.
Оператор typeof
может возвращать один из следующих примитивных типов:
string
number
boolean
undefined
typeof "John" // Returns "string" typeof 3.14 // Returns "number" typeof true // Returns "boolean" typeof false // Returns "boolean" typeof x // Returns "undefined" (if x has no value)
Сложные данные
Оператор typeof
может возвращать один из двух сложных типов:
function
object
Оператор typeof
возвращает объект как для объектов, так и для массивов и null.
Оператор typeof
не возвращает объект для функций.
typeof {name:'John', age:34} // Returns "object" typeof [1,2,3,4] // Returns "object" (not "array") typeof null // Returns "object" typeof function myFunc(){} // Returns "function"
Оператор
typeof
возвращает 'object
' для массивов, потому что в JavaScript массивы являются объектами.
Reference 1. https://www.w3schools.com/jS/js_datatypes.asp