9. Программирование с использованием Javascript

Основные конструкции языка

  1. Переменные — используются для хранения данных (например, 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 лучше избегать в новом коде из-за особенностей области видимости и проблем с подъемом.

  1. Типы данных — базовые типы данных, такие как number, string, boolean, null, undefined, object, symbol, bigint. Так-как Javascript является не строго типизированным, то конструкция ваших переменных определяет их тип
    var id = 0.1 // Переменная будет типом float/double
    const p = 3.14; // Константы
  2. Операторы:
    • Арифметические (+, -, *, /, %, ++, --)
    • Логические (&&, ||, !)
    • Сравнения (==, !=, ===, !==, >, <, >=, <=)
    • Присваивания (=, +=, -=, *=, /=)
  3. Условные операторы — конструкции для выполнения кода в зависимости от условий (if...else, switch).
  4. Циклы — конструкции для повторения кода (for, while, do...while, for...in, for...of).
  5. Функции — блоки кода, которые выполняют определенную задачу и могут возвращать значения (function, стрелочные функции ()=>{}, return).
  6. Замыкания — функции, которые имеют доступ к переменным из родительской области видимости даже после завершения ее выполнения.
  7. Стрелочные функции — функции, которые имеют сокращенный синтаксис (() => {}).
  8. Рекурсия — вызов функции самой себя.

Объекты и массивы

  1. Объекты — коллекции данных в формате ключ-значение (например, { key: value }).
  2. Массивы — списки данных, доступные по индексу (например, [1, 2, 3]).
  3. Деструктуризация — синтаксис, который позволяет извлекать данные из объектов и массивов.
  4. Методы массива — функции для работы с массивами (push, pop, shift, unshift, map, filter, reduce, forEach, slice, splice).

Задание

Объявите три переменные a, b, и c, присвойте им числовые значения. Затем сложите эти переменные и выведите результат в консоль с помощью команды console.log().

console.log("Результат сложения:", result);