Урок 2: Переменные и типы данных
В этом уроке мы подробно рассмотрим переменные и типы данных в JavaScript. Понимание переменных и типов данных является основополагающим знанием для работы с языком программирования. JavaScript предлагает три ключевых слова для объявления переменных: var
, let
и const
. Кроме того, в языке существует несколько основных типов данных, включая числа, строки и булевы значения.
Объявление переменных
В JavaScript переменные можно объявлять с помощью ключевых слов var
, let
и const
. Каждое из этих ключевых слов имеет свои особенности и области применения.
var
Ключевое слово var
было единственным способом объявления переменных в JavaScript до появления ECMAScript 6 (ES6). Переменные, объявленные с помощью var
, имеют функциональную область видимости или, если объявлены вне функции, глобальную область видимости.
// Пример с var
var name = 'Alice';
console.log(name); // Alice
if (true) {
var age = 25;
}
console.log(age); // 25
let
Ключевое слово let
было введено в ES6. Переменные, объявленные с помощью let
, имеют блочную область видимости, что означает, что они существуют только в пределах блока кода, в котором они объявлены.
// Пример с let
let name = 'Bob';
console.log(name); // Bob
if (true) {
let age = 30;
console.log(age); // 30
}
console.log(age); // ReferenceError: age is not defined
const
Ключевое слово const
также было введено в ES6. Переменные, объявленные с помощью const
, являются константами и не могут быть переназначены после инициализации. Они также имеют блочную область видимости.
// Пример с const
const name = 'Charlie';
console.log(name); // Charlie
name = 'David'; // TypeError: Assignment to constant variable.
Типы данных
В JavaScript существует несколько основных типов данных. Рассмотрим три из них: числа, строки и булевы значения.
Числа
Числа в JavaScript могут быть целыми или дробными. Они объявляются без каких-либо специальных синтаксических конструкций.
// Пример с числами
let integer = 42;
let float = 3.14;
console.log(integer); // 42
console.log(float); // 3.14
Строки
Строки представляют собой текстовые данные и могут быть заключены в одинарные, двойные или косые кавычки.
// Пример со строками
let singleQuote = 'Hello';
let doubleQuote = "World";
let backticks = `Hello, ${doubleQuote}!`;
console.log(singleQuote); // Hello
console.log(doubleQuote); // World
console.log(backticks); // Hello, World!
Булевы значения
Булевы значения представляют собой логические значения и могут быть либо true
(истина), либо false
(ложь).
// Пример с булевыми значениями
let isJavaScriptFun = true;
let isPythonBetter = false;
console.log(isJavaScriptFun); // true
console.log(isPythonBetter); // false
Результат выполнения
Alice
25
Bob
30
ReferenceError: age is not defined
Charlie
TypeError: Assignment to constant variable.
42
3.14
Hello
World
Hello, World!
true
false
Упражнения
Упражнение 1: Объявление и использование переменных
Объявите переменную с помощью let
, присвойте ей строковое значение и выведите это значение в консоль. Затем измените значение переменной на числовое и снова выведите его в консоль.
Решение:
// Объявление переменной и присвоение строкового значения
let myVar = 'JavaScript';
console.log(myVar); // JavaScript
// Изменение значения переменной на числовое
myVar = 101;
console.log(myVar); // 101
Объяснение: Мы объявили переменную myVar
с помощью let
и присвоили ей строковое значение 'JavaScript'
. Затем мы изменили значение переменной на число 101
и снова вывели его в консоль.
Упражнение 2: Работа с константами
Объявите константу с помощью const
и присвойте ей любое значение. Попробуйте изменить значение константы и посмотрите, что произойдет.
Решение:
// Объявление константы
const myConst = 'Initial value';
console.log(myConst); // Initial value
// Попытка изменить значение константы
myConst = 'New value'; // TypeError: Assignment to constant variable.
Объяснение: Мы объявили константу myConst
с помощью const
и присвоили ей значение 'Initial value'
. Затем мы попытались изменить значение константы, что привело к ошибке TypeError
, поскольку значения констант нельзя изменять после их инициализации.