9. Программирование с использованием Javascript
Основные конструкции языка
- Переменные — используются для хранения данных (например,
let
,const
,var
). Переменные задаются так:let название_переменной = значение_переменной`;
let
, var
и const
— это ключевые слова для объявления переменных в JavaScript. Они различаются по области видимости, возможностям изменения значений и поведению в коде. Давайте рассмотрим их подробнее:
a. var
- Область видимости: Переменные, объявленные с помощью
var
, имеют функциональную область видимости. Они доступны внутри функции, в которой были объявлены, и могут быть доступны за пределами блока, например, цикла или условия. - Изменяемость: Значение переменной
var
можно изменять. - Поднятие (Hoisting): Переменные, объявленные с помощью
var
, поднимаются (hoisted) в начало своей области видимости. Это означает, что переменная становится доступной еще до того, как до нее дойдет строка кода, но значение будетundefined
до присвоения. -
Повторное объявление: Переменные
var
можно повторно объявлять в пределах одной области видимости, что может привести к ошибкам, если переменные перезаписываются случайно.var x = 10; if (true) { var x = 20; // та же переменная console.log(x); // 20 } console.log(x); // 20
b. let
- Область видимости: Переменные, объявленные с
let
, имеют блочную область видимости. Они доступны только внутри блока, где были объявлены, например, внутри цикла, условия или функции. - Изменяемость: Значение переменной
let
можно изменять. - Поднятие (Hoisting): Переменные
let
тоже поднимаются в начало блока, но они остаются в "временной мертвой зоне" (Temporal Dead Zone) до их фактического объявления, из-за чего доступ до объявления к ним невозможен. -
Повторное объявление: Переменные
let
нельзя повторно объявлять в одной области видимости, что снижает риск случайных ошибок.let y = 10; if (true) { let y = 20; // новая переменная в блоке console.log(y); // 20 } console.log(y); // 10
c. const
- Область видимости: Переменные
const
также имеют блочную область видимости и доступны только внутри блока, где были объявлены. - Неизменяемость: Переменные
const
нельзя переопределять, их значение остается неизменным. Однако, если это объект или массив, можно изменять его внутренние свойства и элементы. - Поднятие (Hoisting): Переменные
const
поднимаются аналогичноlet
, но также находятся в "временной мертвой зоне", из-за чего доступ до объявления невозможен. -
Повторное объявление: Переменные
const
нельзя повторно объявлять в одной области видимости.const z = 10; if (true) { const z = 20; // новая переменная в блоке console.log(z); // 20 } console.log(z); // 10 // Пример с объектом const obj = { name: "John" }; obj.name = "Jane"; // изменяемое свойство объекта console.log(obj); // { name: "Jane" }
Основные отличия:
var | let | const | |
---|---|---|---|
Область видимости | Функциональная | Блочная | Блочная |
Изменяемость | Изменяемая | Изменяемая | Неизменяемая |
Поднятие | Да, значение undefined |
Да, но в "мёртвой зоне" | Да, но в "мёртвой зоне" |
Повторное объявление | Да | Нет | Нет |
Итого:
- Используйте
let
для переменных, которые должны изменяться в пределах блока. - Используйте
const
для значений, которые не должны изменяться, за исключением работы с объектами и массивами. var
лучше избегать в новом коде из-за особенностей области видимости и проблем с подъемом.
- Типы данных — базовые типы данных, такие как
number
,string
,boolean
,null
,undefined
,object
,symbol
,bigint
. Так-как Javascript является не строго типизированным, то конструкция ваших переменных определяет их типvar id = 0.1 // Переменная будет типом float/double const p = 3.14; // Константы
- Операторы:
- Арифметические (
+
,-
,*
,/
,%
,++
,--
) - Логические (
&&
,||
,!
) - Сравнения (
==
,!=
,===
,!==
,>
,<
,>=
,<=
) - Присваивания (
=
,+=
,-=
,*=
,/=
)
- Арифметические (
- Условные операторы — конструкции для выполнения кода в зависимости от условий (
if...else
,switch
). - Циклы — конструкции для повторения кода (
for
,while
,do...while
,for...in
,for...of
). - Функции — блоки кода, которые выполняют определенную задачу и могут возвращать значения (
function
, стрелочные функции()=>{}
,return
). - Замыкания — функции, которые имеют доступ к переменным из родительской области видимости даже после завершения ее выполнения.
- Стрелочные функции — функции, которые имеют сокращенный синтаксис (
() => {}
). - Рекурсия — вызов функции самой себя.
Объекты и массивы
- Объекты — коллекции данных в формате ключ-значение (например,
{ key: value }
). - Массивы — списки данных, доступные по индексу (например,
[1, 2, 3]
). - Деструктуризация — синтаксис, который позволяет извлекать данные из объектов и массивов.
- Методы массива — функции для работы с массивами (
push
,pop
,shift
,unshift
,map
,filter
,reduce
,forEach
,slice
,splice
).
Задание
Объявите три переменные a
, b
, и c
, присвойте им числовые значения. Затем сложите эти переменные и выведите результат в консоль с помощью команды console.log()
.
console.log("Результат сложения:", result);