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

Большинство взаимодействий в Интернете связано с какими-то данными. Возможно, это данные банковского счета, или данные о списке продуктов в корзине, или сообщение в социальной сети, или последний результат плей-офф баскетбола. Данные - это причина, по которой люди запускают браузер и исследуют Интернет. JavaScript позволяет программистам контролировать значения и типы данных, используемых в программе.

JavasScript позволяет программистам работать с множеством различных значений. Эти значения могут включать общую сумму в долларах на онлайн-банковском счете, список названий продуктов в тележке для покупок на веб-сайте электронной коммерции, текст сообщения в социальной сети или окончательный результат баскетбольного матча. Общей чертой всех этих примеров является то, что они представляют собой значения - числа, текст, список текста и т. Д., Которые отображаются на веб-странице.

Говоря о значениях, имеет смысл делать это вместе с типами. В JavaScript типы - это различные формы, которые могут принимать данные и которые понимаются движком JavaScript. Согласно MDN, в настоящее время существует девять различных типов. Это включает:

Типы

Типы данных (примитивы)

  • Строка - содержание, заключенное в кавычки, двойные кавычки или обратные кавычки (например, «привет, боб», «компания по аренде автомобилей», green park).
  • Число - включая целые и десятичные числа (например, 17, 2,63, -32,62, 5000,01).
  • Логическое - истина или ложь (например, истина, ложь)
  • undefined - отсутствие значения (например, undefined)
  • BigInt - числа больше 2⁵³ - 1 (например, BigInt (9007199254740991))
  • Символ - анонимное уникальное свойство (например, var sym = Symbol (‘sym’)).

Структурные типы

  • Объект - тип данных для структурированных данных (например, {name: ‘bob’, age: 34}).
  • Функция - фрагмент кода, который может быть вызван другим кодом (например, функция sayHello () {return ‘hello’;})

Структурный корень (примитив)

  • null - указывает на несуществующее значение (например, var score = null)

Присвоение значений - примитивные типы

Сами по себе ценности мало что делают. Чтобы получить максимальную отдачу от значений, их следует присвоить переменным. В JavaScript процесс присвоения значения переменной невероятно легок и прост.

var title = 'Tale of Two Cities';
typeof title; // 'string'

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

var title = true; // the variable title is reassigned with a new value
typeof title; // 'boolean'

Примитивные типы данных могут быть созданы следующими способами:

Строковые значения

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

var myName = 'bob';
var myNickname = 'sparky';
var myFriend = `melvin`;
// using template literals
var greeting = `hello, how are you ${myFriend}?`;

Числовые значения

Числа могут включать целые, десятичные и отрицательные числа. Есть некоторые ограничения на то, насколько большие числа могут быть в JavaScript, но, вообще говоря, числовой тип данных соответствует большинству повседневных потребностей и ситуаций.

var age = 34;
var price = 53.67;
var transactionTime = 326.2646223;
var submersionDepth = -236;

Логические значения

Логическим можно присвоить только значение true или false и ничего больше.

var isMember = true;
var completedExam = false;

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

Неопределенный

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

var name = undefined;
var location; // undefined

Ценности BigInt

BigInt - это довольно новый тип данных JavaScript (добавлен в выпуске ES2020), который используется для чисел, выходящих за пределы диапазона, который может поддерживать примитивный тип Number. Тип данных Number может надежно обрабатывать числа от -9007199254740991 до 9007199254740991, которые являются статическими свойствами объекта Number Number.MIN_SAFE_INTEGER и Number.MAX_SAFE_INTEGER. Для чисел, меньших или больших, доступен примитив BigInt. Переменную со значением типа BigInt можно создать, добавив букву n к целому числу.

var myLargeNumber = 9007199254740999n;
typeof myLargeNumber; // 'bigint'

Значения символов

Символ был добавлен в JavaScript с ES2015 и может быть создан путем вызова функции Symbol. Символ может быть создан с необязательной строкой описания. Каждый созданный символ всегда уникален. Обычно символы используются как свойство объекта.

let location = Symbol('location');
typeof location; // 'symbol'
let place = Symbol('location');
location === place; // false - symbols are unique, even with the same description string
const company = {
  name: Symbol('Acme Co.'),
  location: Symbol('Los Angeles'),
};
company.name; // Symbol(Acme Co.)
company.location.description; // 'Los Angeles'

Присвоение значений - типы конструкций

Объект

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

Создание объекта с помощью конструктора Object ()

Конструктор объекта - это способ инициализировать объект без необходимости немедленного присвоения ему значения.

let myItem = Object(); // creates an empty object {}
myItem.name = 'hat';
myItem.size = 'large';
myItem.price = 21.47;
myItem; // { name: 'hat', size: 'large', price: 21.47 }

Создание объекта с использованием синтаксиса литерала объекта

Использование синтаксиса литерала объекта - это способ неявного создания объекта без необходимости явно использовать конструктор Object ().

let newEmployee = {
  name: 'melvin',
  age: 34,
  isManager: true,
};
newEmployee.name; // 'melvin'

Функция

Функции - это структурный тип, не связанный с данными, который может вызывать для выполнения другие фрагменты кода. Функции относятся к типу данных объект, но будут возвращать function, когда для них вызывается оператор typeof. Функции можно объявлять несколькими способами.

Именованная функция

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

function sayHello() {
  return 'hello!';
}
sayHello(); // 'hello!'

Выражение функции

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

let greeting = function (name) {
  return `Welcome, ${name}. It's nice to meet you.`;
};
greeting('bob'); // "Welcome, bob. It's nice to meet you."

Анонимные функции

Записываются без объявленного имени, но таким образом должны использоваться как выражение функции.

// Will produce an error without a name or assignment to a variable
function() {
  return 'some good information';
}

Стрелочные функции

Стрелочные функции - это особый тип вызова функции, который может называться именованными функциями или функциональными выражениями, но ведет себя несколько иначе, чем другие функции.

let getProduct = (name) => {
  return `Finish purchase for ${name}.`;
};
getProduct('pencil'); // 'Finish purchase for pencil.'

Присвоение значений - структурный корневой примитив

Нулевой

Null указывает на несуществующее или недопустимое значение. Сам Null описывается как примитив, хотя технически это тип object. Его можно использовать для присвоения переменной не значения. Полезно присвоить переменной значение, которое будет возвращать false при выполнении сравнения.

Заключение

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

Больше контента на plainenglish.io