typeof JavaScript

typeof JavaScript

В JavaScript есть 5 различных типов данных, которые могут содержать значения:

  • string
  • number
  • boolean
  • object
  • function

Есть 6 типов объектов:

  • Object
  • Date
  • Array
  • String
  • Number
  • Boolean

и 2 типа данных, которые не могут содержать значения:

  • null
  • undefined

оператор typeof

Вы можете использовать typeof оператор来确定 JavaScript переменной данные типа.

Пример

typeof "Bill"                 // Возвращает "string"
typeof 3.14                   // Возвращает "number"
typeof NaN                    // Возвращает "number"
typeof false                  // Возвращает "boolean"
typeof [1,2,3,4]              // Возвращает "object"
typeof {name:'Bill', age:19}  // Возвращает "object"
typeof new Date()             // Возвращает "object"
typeof function () {}         // Возвращает "function"
typeof myCar                  // Возвращает "undefined" *
typeof null                   // Возвращает "object"

Попробуйте сами

Обратите внимание:

  • Тип данных NaN составляет число
  • Тип данных массива составляет объект
  • Тип данных даты составляет объект
  • Тип данных null составляет object
  • Тип данных неопределенной переменной составляет undefined *
  • Данные переменной, не имеющей значения, также являются undefined *

Вы не можете использовать typeof чтобы определить, является ли объект JavaScript массивом (или датой).

Исходная дата

Значение исходных данных指的是 одиночный простый значимый объект без дополнительных свойств и методов.

typeof Оператор может возвращать один из следующих исходных типов:

  • string
  • number
  • boolean
  • undefined

Пример

typeof "Bill"              // Возвращает "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:'Bill', age:19} // Возвращает "object"
typeof [1,2,3,4]             // Возвращает "object" (не "array", обратите внимание на следующий пример)
typeof null                  // Возвращает "object"
typeof function myFunc(){}   // Возвращает "function"

Попробуйте сами

typeof Оператор возвращает для массива "object", потому что в JavaScript массивы являются объектами.

Типы данных typeof

typeof Оператор не переменная. Это просто оператор. Операторы (+ - * /) не имеют типа данных.

ноtypeof Оператор всегдаВозвращает строку(включая тип операнда).

Свойство constructor

constructor Свойство возвращает конструктор всех переменных JavaScript.

Пример

"Bill".constructor                // Возвращает функцию String()  {[родное код]}
(3.14).constructor                // Возвращает функцию Number()  {[родное код]}
false.constructor                 // Возвращает функцию Boolean() {[родное код]}
[1,2,3,4].constructor             // Возвращает function Array()   {[native code]}
{name:'Bill',age:19}.constructor  // Возвращает function Object()  {[native code]}
new Date().constructor            // Возвращает function Date()    {[native code]}
function () {}.constructor        // Возвращает function Function(){[native code]}

Попробуйте сами

Вы можете проверить атрибут constructor, чтобы определить, является ли объект массивом (включая "Array" ):

Пример

function isArray(myArray) {
  return myArray.constructor.toString().indexOf("Array") > -1;
}

Попробуйте сами

или проще, вы можете проверить, является ли объектФункция массива:

Пример

function isArray(myArray) {
  return myArray.constructor === Array;
}

Попробуйте сами

Вы можете проверить атрибут constructor, чтобы определить, является ли объект датой (включая "Date" ):

Пример

function isDate(myDate) {
  return myDate.constructor.toString().indexOf("Date") > -1;
}

Попробуйте сами

или проще, вы можете проверить, является ли объектФункция даты:

Пример

function isDate(myDate) {
  return myDate.constructor === Date;
}

Попробуйте сами

Undefined

В JavaScript переменная без значения имеет значение undefined. Тип также undefined.

Пример

let car;    // Значение undefined, тип также undefined.

Попробуйте сами

назначив значение undefinedможет очистить любую переменную. Тип также будет undefined.

Пример

car = undefined;    // Значение undefined, тип также undefined.

Попробуйте сами

Пустое значение

Пустое значение с undefined Безразлично.

Пустая строка имеет как законное значение, так и тип.

Пример

let car = "";    // Значение "", тип "string"

Попробуйте сами

Null

В JavaScript: null Это «нет». Оно должно быть не существующим.

К сожалению, в JavaScript:null Тип данных является объектом.

Вы можете думать о нем как о баге JavaScripttypeof null является объектом. Тип должен быть null.

Вы можете установить объект в null Чтобы очистить объект:

Пример

let person = {firstName:"Bill", lastName:"Gates", age:19, eyeColor:"blue"};
person = null;    // Теперь значение null, но тип по-прежнему объект

Попробуйте сами

Вы также можете установить объект в undefined Чтобы очистить объект:

Пример

let person = {firstName:"Bill", lastName:"Gates", age:19, eyeColor:"blue"};
person = undefined;   // Теперь значение и тип являются неопределенными

Попробуйте сами

Разница между undefined и null

undefined и null Ценные, но различные значения:

typeof undefined           // undefined
typeof null                // object
null === undefined         // false
null == undefined          // true

Попробуйте сами