Переменные в JavaScript могут хранить значения разных типов. Но каждое значение в JavaScript имеет строго определенный тип.
Начнем с отличий между строками и числами.
Строки
Любая текстовая информация в JavaScript считается строкой.
Чтобы создать строку — оберни текст в кавычки.
Кавычки могут быть одинарными, двойными или косыми.
let hello = 'Hello, World!';
let name = "John";
let s = `some string`;
Во всех трех случаях в переменных hello
, name
и s
будут сохранены строки.
Строки можно склеивать между собой используя оператор +
let name = 'Jack';
let surname = 'Jones';
let fullName = name + surname;
Попробуем вывести на экран значение переменной fullName
:
console.log(fullName);
И увидим сообщение
JackJones
Чтобы добавить пробел между Jack
и Jones
, нам нужно немного изменить начальный код.
Начнем все так же со строки Jack
добавим к ней строку состоящую из одного символа (пробел) и в конце приклеим строку Jones
.
Так как строки Jack
и Jones
хранятся в переменных name
и surname
, мы можем использовать их.
let fullName = name + ' ' + surname;
console.log(fullName);
Вывод на экран изменится и между именем и фамилией появится пробел.
Jack Jones
Числа
Кроме строк, в JavaScript переменные часто сохраняют числа. Числа могут быть любыми. Отрицательными, положительными или с плавающей точкой.
let a = 1;
let b = 0.5;
let c = -15.25;
let year = 2021;
Выше мы создали 4 переменные a
, b
, c
и year
и сохранили в них числовые значения 1
, 0.5
, -15.25
и 2021
.
Обрати внимание, что в этот раз мы не использовали кавычки.
Числа можно вывести на экран так же, как и строки.
console.log(year);
console.log(c);
Мы увидим на экране два сообщения:
2021
-15.25
Отличия между числами и строками становятся очевидны, когда мы попробуем сложить их.
let x = 2;
let y = 3;
let sum = x + y;
console.log(sum);
В результате выполнения этой программы на экране появится число 5
.
Попробуем проверить, что будет, если мы обернем значения переменных x
и y
в кавычки:
let x = '2';
let y = '3';
let sum = x + y;
console.log(sum);
В этом случае на экране появится строка 23
, так как JavaScript просто склеит строки 2
и 3
, не применяя арифметическую операцию сложения.
Динамическая типизация
JavaScript — это язык с динамической типизацией. Это значит, что тип переменной не закреплен за ней жестко и определяется тем, что в этой переменной хранится.
Мы можем создать переменную, сохранить в нее строку, а потом перезаписать ее и сохранить число.
let x = 1;
let y = 2;
console.log(x + y);
y = 'hello';
console.log(x + y);
Мы сохранили числа 1
и 2
в переменные x
и y
. После этого, вывели на экран их сумму. Никаких сюрпризов и в консоли появилось значение 3
.
После этого, мы перезаписали значение переменной y
и сохранили в ней строку hello
. Теперь JavaScript не может выполнить арифметическое сложение и на экране появится строка 1hello
.
3
1hello
Практические задачи
Попробуем вывести на экран значение переменных и на разберемся на практике в отличиях между строками и числами в JS.
Задача 1
Перед программистом стояла задача сохранить числа 2
и 3
в переменные x
и y
и вывести их сумму на экран. Похоже что он ошибся и вместо чисел сохранил строки.
let x = '2';
let y = '3';
console.log(x + y);
Перепиши код, измени строки на числа убрав кавычки и нажми “ЗАПУСК”.
Задача 2
В этой задаче переменные были созданы, но остались пустыми.
let greeting = '';
let name = '';
console.log(greeting + ' ' + name);
Сохрани строки Hello
и Hero
в переменные greeting
и name
и нажми “ЗАПУСК”.
Задача 3
На экране должна появиться строка 2 + 2 = 4
, а вместо этого мы получили ошибку.
const result = 4;
console.log('2 + 2 = ' + x);
Найди проблему, исправь ее и нажми “ЗАПУСК”.
Задача 4
Начинаем с чистого листа. Выведи на экран 3 числа — 0
, 2.5
и -100
и нажми “ЗАПУСК”.
Каждое число должно быть выведено с новой строки.