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