- Теория
- Теория
Конкатенация
В прошлых заданиях мы использовали числа и арифметические операции, но у каждого типа данных свои операции. Например, арифметические операции можно производить с числами, но не со строками.
Самая частая строковая операция — это «склеивание» строк, или конкатенация:
let name = 'Кекс';
// Обратите внимание на пробелы
'Инструктор' + 'Кекс'; // Результат: 'ИнструкторКекс'
'Инструктор ' + 'Кекс'; // Результат: 'Инструктор Кекс'
'Инструктор ' + name; // Результат: 'Инструктор Кекс'
Для склеивания строк используется тот же знак, что и для сложения чисел, — плюс. Как JavaScript понимает, какую операцию применить, сложение или конкатенацию? Он смотрит на тип операндов: если это строки, то они склеиваются, если это числа, то они складываются.
Но что будет, если операнды разного типа? Например:
'Время, мин: ' + 50; // Результат: 'Время, мин: 50'
'2' * 50; // Результат: 100
В этом случае JavaScript попытается привести операнды к одному типу и выполнить операцию. Подходящий тип будет выбираться в зависимости от операции.
Плюс может быть знаком сложения или конкатенации, но так как один из операндов — строка, то сложение не подходит. Поэтому число 50
приводится к строке '50'
и склеивается со строкой 'Время, мин: '
.
Звёздочка — это знак умножения, со строками она не используется. Поэтому JavaScript пытается превратить строку '2'
в число, и ему это удаётся. Затем числа 2
и 50
перемножаются, и получается 100
.
Из-за того, что JavaScript умеет изменять тип операндов на лету, он называется языком со слабой типизацией. Конечно, есть много тонкостей и проблем с приведением типов. Мы подробно разберём этот вопрос в следующих частях. А сейчас условимся, что в наших первых программах проблем с приведением типов не будет, так как программы простые, а пользователи вводят данные аккуратно.
Вернёмся к конкатенации. Зачем её используют? Конкатенация позволяет делать сообщения программ более информативными и «человечными». Убедимся в этом на практике.
- index.html
Вы перешли на другую страницу
Кликните внутри мини-браузера, чтобы поставить фокус в это окно.