Типы данных

В 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