Типы данных в основном определяют, какие данные могут храниться и обрабатываться в программе.

В JavaScript существует шесть основных типов данных, которые можно разделить на три основные категории: примитивные (или первичные), составные (или ссылочные) и специальные типы данных. String, Number и Boolean являются примитивными типами данных. Object, Array и Function (все типы объектов) являются составными типами данных. Тогда как Undefined и Null являются специальными типами данных.

Примитивные типы данных могут содержать только одно значение, тогда как составные типы данных могут содержать массивы значений и более сложные объекты. Давайте обсудим каждый из них подробно.

Тип данных String

Строковый тип данных используется для представления текстовых данных (то есть последовательности символов). Строки создаются с использованием одинарных или двойных кавычек, окружающих один или несколько символов, как показано ниже:

var a = 'Hi there!';  // используя одинарные кавычки
var b = "Hi there!";  // используя двойные кавычки

Вы можете включать кавычки в строку, если они не соответствуют вмещающим кавычкам.

var a = "Let's have a cup of coffee."; // одинарная кавычка внутри двойных кавычек
var b = 'He said "Hello" and left.';  // двойные кавычки внутри одинарных кавычек
var c = 'We\'ll never give up.';     // эскейпим кавычку обратным слешем

Вы узнаете больше о строках в Руководстве по типу данных String в JavaScript.

Тип данных Number

Числовой тип данных используется для представления положительных или отрицательных чисел с десятичным знаком или без него или чисел, написанных с использованием экспоненциальной записи, например 1.5e-4 (эквивалентно 1.5×10-4).

var a = 25;         // integer
var b = 80.5;       // floating-point number
var c = 4.25e+6;    // exponential notation, same as 4.25e6 or 4250000
var d = 4.25e-6;    // exponential notation, same as 0.00000425

Тип данных Number также включает некоторые специальные значения: Infinity, -Infinity и NaN. Бесконечность представляет математическую бесконечность , которая больше любого числа. Бесконечность — это результат деления ненулевого числа на 0, как показано ниже:

alert(16 / 0);  // Выводит: Infinity
alert(-16 / 0); // Выводит: -Infinity
alert(16 / -0); // Выводит: -Infinity

В то время как NaN представляет собой специальное значение Not-a-Number. Это результат неверной или неопределенной математической операции, такой как получение квадратного корня из -1 или деление 0 на 0 и т. д.

alert("Some text" / 2);       // Выводит: NaN
alert("Some text" / 2 + 10);  // Выводит: NaN
alert(Math.sqrt(-1));         // Выводит: NaN

Вы узнаете больше о числах в Руководстве по типу данных Number в JavaScript.

Тип данных Boolean

Тип данных Boolean может содержать только два значения: true или false. Обычно он используется для хранения таких значений, как yes (true) или no (false), on (true) или off (false) и т. д., как показано ниже:

var isReading = true;   // yes, I'm reading
var isSleeping = false; // no, I'm not sleeping

Логические значения также появляются в результате сравнений в программе. В следующем примере сравниваются две переменные и показывает результат в диалоговом окне предупреждения:

var a = 2, b = 5, c = 10;
 
alert(b > a) // Выводит: true
alert(b > c) // Выводит: false

Вы узнаете больше о сравнениях в Руководстве по операторам if…else в JavaScript.

Тип данных Undefined

Неопределенный тип данных может иметь только одно значение — специальное значение undefined. Если переменная была объявлена, но ей не было присвоено значение, она имеет значение undefined.

var a;
var b = "Hello World!"
 
alert(a) // Выводит: undefined
alert(b) // Выводит: Hello World!

Тип данных Null

Это еще один специальный тип данных, который может иметь только одно значение — null. Нулевое значение означает, что значения нет. Это не эквивалентно пустой строке ("") или 0, это просто ничто.

Переменная может быть явно очищена от ее текущего содержимого, присваивая ей нулевое значение.

var a = null;
alert(a); // Выводит: null
 
var b = "Hello World!"
alert(b); // Выводит: Hello World!
 
b = null;
alert(b) // Выводит: null

Тип данных Object

Объект представляет собой сложный тип данных, который позволяет хранить коллекции данных.

Объект содержит свойства, определенные как пара ключ-значение. Ключ свойства (имя) всегда является строкой, но значением может быть любой тип данных, например строки, числа, логические значения или сложные типы данных, такие как массивы, функции и другие объекты. Вы узнаете больше об объектах в следующих главах.

Следующий пример покажет вам самый простой способ создания объекта в JavaScript.

var emptyObject = {};
var person = {"name": "Clark", "surname": "Kent", "age": "36"};
 
// For better reading
var car = {
    "modal": "BMW X3",
    "color": "white",
    "doors": 5
}

Вы можете опустить кавычки вокруг имени свойства, если имя является допустимым именем JavaScript. Это означает, что кавычки обязательны для имени "first-name", но не обязательны для имени firstname. Таким образом, объект car в приведенном выше примере также может быть записан как:

var car = {
    modal: "BMW X3",
    color: "white",
    doors: 5
}

Вы узнаете больше об объектах в Руководстве по объектам JavaScript.

Тип данных Array

Массив — это тип объекта, используемый для хранения нескольких значений в одной переменной. Каждое значение (также называемое элементом) в массиве имеет числовую позицию, известную как его индекс; он может содержать данные любых типов данных: числа, строки, логические значения, функции, объекты и даже другие массивы. Индекс массива начинается с 0, поэтому первым элементом массива является arr[0], а не arr[1].

Самый простой способ создать массив — указать элементы массива в виде списка через запятую, заключенного в квадратные скобки, как показано в примере ниже:

var colors = ["Red", "Yellow", "Green", "Orange"];
var cities = ["London", "Paris", "New York"];
 
alert(colors[0]);   // Выводит: Red
alert(cities[2]);   // Выводит: New York

Вы узнаете больше о массивах в Руководстве по массивам JavaScript.

Тип данных Function

Функция является вызываемым объектом, который выполняет блок кода. Поскольку функции являются объектами, их можно назначать переменным, как показано в примере ниже:

var greeting = function(){ 
    return "Hello World!"; 
}
 
// Check the type of greeting variable
alert(typeof greeting) // Выводит: function
alert(greeting());     // Выводит: Hello World!

Фактически, функции могут использоваться в любом месте, где может использоваться любое другое значение. Функции могут храниться в переменных, объектах и массивах. Функции могут быть переданы в качестве аргументов другим функциям и функции могут быть возвращены из функций. Рассмотрим следующую функцию:

function createGreeting(name){
    return "Hello, " + name;
}
function displayGreeting(greetingFunction, userName){
    return greetingFunction(userName);
}
 
var result = displayGreeting(createGreeting, "Peter");
alert(result); // Выводит: Hello, Peter

Вы узнаете больше о функциях в Руководстве по функциям JavaScript.

Оператор typeof

Оператор typeof может использоваться для определения типа данных, содержащихся в переменной или операторе. Может использоваться с круглыми скобками или без них (typeof(x) или typeof x).

Оператор typeof особенно полезен в ситуациях, когда вам нужно обрабатывать значения разных типов по-разному, но вы должны быть очень осторожны, поскольку в некоторых случаях он может привести к неожиданному результату, как показано в следующем примере:

// Numbers
typeof 15;  // Возвращает: "number"
typeof 42.7;  // Возвращает: "number"
typeof 2.5e-4;  // Возвращает: "number"
typeof Infinity;  // Возвращает: "number"
typeof NaN;  // Возвращает: "number". Despite being "Not-A-Number"
 
// Strings
typeof '';  // Возвращает: "string"
typeof 'hello';  // Возвращает: "string"
typeof '12';  // Возвращает: "string". Number within quotes is typeof string
 
// Booleans
typeof true;  // Возвращает: "boolean"
typeof false;  // Возвращает: "boolean"
 
// Undefined
typeof undefined;  // Возвращает: "undefined"
typeof undeclaredVariable; // Возвращает: "undefined"
 
// Null
typeof Null;  // Возвращает: "object"
 
// Objects
typeof {name: "John", age: 18};  // Возвращает: "object"
 
// Arrays
typeof [1, 2, 4];  // Возвращает: "object"
 
// Functions
typeof function(){};  // Возвращает: "function"

Как вы можете ясно видеть в приведенном выше примере, когда мы тестируем нулевое значение null с помощью оператора typeof (строка № 22), он возвращает object вместо null.

Это давняя ошибка в JavaScript, но так как множество кода в сети, написано учитывая это поведения обратную совместимость уже написать невозможно.

Похожие посты

Руководство по сортировке массивов в JavaScript

Сортировка — обычная задача при работе с массивами. Она будет использоваться, например, если вы захотите отобразить названия городов или регионов в алфавитном порядке. JavaScript массив (array) имеет встроенный метод sort() для сортировки элементов массива в алфавитном порядке. Следующий пример демонстрирует, как это работает: Реверсирование массива Вы можете использовать метод reverse(), чтобы изменить порядок элементов массива…

Руководство по массивам в JavaScript

Массивы — это сложные переменные, которые позволяют нам хранить группы значений под одним именем переменной. Массивы JavaScript могут хранить любое допустимое значение, включая строки, числа, объекты, функции и даже другие массивы, что позволяет создавать более сложные структуры данных, такие как массив объектов или массив массивов. Предположим, вы хотите сохранить название цветов в своем коде JavaScript….

Руководство по работе с атрибутами DOM в JavaScript

Атрибуты — это специальные слова, используемые внутри начального тега HTML-элемента для управления поведением тега или предоставления дополнительной информации о теге. JavaScript предоставляет несколько методов для добавления, удаления или изменения атрибутов HTML-элемента. В этом разделе мы узнаем об этих методах подробно. Получение значения атрибута элемента Метод getAttribute() используется для получения текущего значения атрибута элемента. Если указанный…

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.