Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции 2025. Java. Белая / Ответы на билеты. Java

.pdf
Скачиваний:
0
Добавлен:
02.01.2026
Размер:
4.52 Mб
Скачать

РФУТ - Э

ТЕМЫ ДЛЯ ПОДГОТОВКИ К ЭКЗАМЕНУ

1. Общие сведения о JavaScript. Способы добавление сценариев JavaScript на веб-страницу.

Общие сведения:

JavaScript (JS) — это высокоуровневый, интерпретируемый язык программирования.

Часто используется для создания интерактивных веб-страниц (клиентская сторона), но также может выполняться на сервере (Node.js) и в других окружениях.

Является мультипарадигменным: поддерживает объектно-ориентированный (прототипный), императивный и функциональный стили программирования.

Динамически типизированный: типы переменных определяются во время выполнения, а не во время компиляции.

Однопоточный (в браузере, с моделью событий для асинхронности).

Способы добавления сценариев JavaScript на веб-страницу:

1.Встроенный (Inline) в HTML теги (не рекомендуется для больших скриптов):

2.Внутри тега в или :

Скрипты в выполняются до того, как DOM полностью загружен (если нет или ).

Скрипты в конце выполняются после загрузки DOM, что часто предпочтительнее, так как скрипт может сразу взаимодействовать с элементами страницы.

3.Подключение внешнего файла с помощью тега

(рекомендуемый способ):

HTML (index.html):

JavaScript (myscript.js):

Атрибуты и :

: Скрипт загружается асинхронно и выполняется, как только загрузится. Порядок выполнения скриптов с не гарантируется. Не блокирует парсинг HTML во время загрузки.

: Скрипт загружается асинхронно, но выполняется после того, как весь HTML документ будет разобран, и в том порядке, в котором они указаны в HTML. Не блокирует парсинг HTML во время загрузки.

2. Синтаксис JavaScript. Символы-разделители и переводы строк. Комментарии. Литералы. Идентификаторы.

Символы-разделители:

Точка с запятой () используется для разделения инструкций (операторов). Она не всегда обязательна, так как JavaScript имеет механизм автоматической вставки точки с запятой (ASI - Automatic Semicolon Insertion). Однако, чтобы избежать неоднозначностей, рекомендуется всегда ставить точку с запятой.

Запятая () используется для разделения элементов в списках (например, параметров функций, элементов массива, свойств объекта).

Переводы строк:

Переводы строк могут выступать в роли разделителей инструкций, если ASI сможет корректно их интерпретировать.

Нельзя разрывать строку литерала (в кавычках) переводом строки без использования символа обратного слеша () или шаблонных строк.

Комментарии:

Однострочные: начинаются с и продолжаются до конца строки.

Многострочные: начинаются с и заканчиваются .

Литералы:

Фиксированные значения, которые представлены непосредственно в коде. Числовые: , , Строковые: , , `Шаблонная строка` Булевы: ,

Объектные:

Массивные:

: специальное значение, представляющее "ничего" или "пусто".

: специальное значение, означающее, что переменная объявлена, но ей не присвоено значение.

Регулярные выражения:

Идентификаторы:

Имена, используемые для переменных, функций, меток и т.д.

 

Правила именования:

 

 

 

Могут содержать буквы (Unicode), цифры, символы и .

 

Не могут начинаться с цифры.

 

 

Регистрозависимы (

и

- разные идентификаторы).

 

Не должны совпадать с зарезервированными словами ( ,

,

и т.д.).

 

 

 

3. Переменные JavaScript и их область действия. Операторы языка

JavaScript.

Переменные JavaScript:

Используются для хранения данных.

Объявляются с помощью ключевых слов , , .

: Старый способ объявления. Имеет функциональную или глобальную область видимости. Подвержен "всплытию" (hoisting) объявления.

: Современный способ. Имеет блочную область видимости (ограничена ближайшими фигурными скобками ). Не подвержена всплытию значения (но объявление "всплывает" в "временную мертвую зону").

: Для объявления констант. Значение должно быть присвоено при объявлении и не может быть изменено (для примитивов). Для объектов и массивов нельзя изменить ссылку на сам объект/массив, но можно изменять их содержимое. Имеет блочную область видимости.

Область действия (Scope):

Определяет, где в коде переменная доступна.

Глобальная область видимости: Переменные, объявленные вне любых функций или блоков (с или без объявления в нестрогом режиме), доступны из любого места кода.

Функциональная область видимости: Переменные, объявленные с внутри функции, доступны только внутри этой функции.

Блочная область видимости: Переменные, объявленные с или внутри блока (например, в , , или просто ), доступны только внутри этого блока.

Операторы языка JavaScript: (будут подробнее рассмотрены в следующих вопросах)

Арифметические: , , , , (остаток от деления), (возведение в степень), (инкремент), (декремент).

Присваивания: , , , , , , .

Сравнения: (нестрогое равенство), (строгое равенство), , , , , , .

Логические: (логическое И), (логическое ИЛИ), (логическое НЕ). Побитовые: , , , , , , .

Тернарный оператор: . Типовые: , .

Другие: , , , , оператор запятая , оператор расширения , оператор опциональной цепочки , оператор нулевого слияния .

4. Типы данных в JavaScript.

JavaScript — язык с динамической типизацией. Переменные не привязаны к типу, тип имеет значение. Существует 8 типов данных:

1. Примитивные типы:

: для чисел любого вида: целочисленных или с плавающей точкой.

Например:

,

,

(Not-a-Number),

.

 

: для строк. Строки заключаются в одинарные, двойные или обратные

кавычки. Например:

 

,

, `age: ${30}`.

 

 

: логический тип, может принимать значения

или

.

: специальное значение, представляющее "ничего", "пусто" или "значение

неизвестно". Образует отдельный тип.

 

 

 

: специальное значение, означающее "значение не присвоено".

Образует отдельный тип. Переменная, которая была объявлена, но не

инициализирована, имеет значение

.

 

 

: для создания уникальных идентификаторов. Используется реже, в

основном для "скрытых" свойств объектов.

 

 

: для целых чисел произвольной длины. Добавляется

в конце числа:

 

 

 

 

.

 

 

2. Составной тип (непримитивный):

: для более сложных структур данных. Включает в себя массивы, функции, обычные объекты, даты и т.д.

5. Арифметические операторы JavaScript.

(Сложение): . Также используется для конкатенации строк:

.

(Вычитание): . (Умножение): . (Деление): . (Остаток от деления): .

(Возведение в степень, ES2016+): (эквивалентно

).

(Инкремент): Увеличивает значение на 1.

Префиксный : Сначала увеличивает , затем возвращает новое значение.

Постфиксный : Сначала возвращает текущее значение , затем увеличивает .

(Декремент): Уменьшает значение на 1.

Префиксный : Сначала уменьшает , затем возвращает новое значение.

Постфиксный : Сначала возвращает текущее значение , затем уменьшает

.

let a = 10; let b = 3;

console.log("Сложение:", a + b); // 13 console.log("Вычитание:", a - b); // 7 console.log("Умножение:", a * b); // 30 console.log("Деление:", a / b); // 3.333...

console.log("Остаток:", a % b); // 1 console.log("Возведение в степень:", a ** b); // 1000

let c = 5; let d = 5;

console.log("Префиксный инкремент:", ++c); // 6 (сначала c=6, потом вывод) console.log("Значение c после:", c); // 6

console.log("Постфиксный инкремент:", d++); // 5 (сначала вывод d=5, потом d=6) console.log("Значение d после:", d); // 6

// Особые случаи с числами: console.log(Infinity / Infinity); // NaN console.log(1 / 0); // Infinity console.log(-1 / 0); // -Infinity

console.log("5" + 2); // "52" (конкатенация строк) console.log("5" - 2); // 3 (строка "5" преобразуется в число) console.log("5" 2); // 10 (строка "5" преобразуется в число) console.log("hello" 2); // NaN

6. Логические операторы JavaScript.

Используются для комбинирования или инвертирования булевых значений.

(Логическое ИЛИ):

Возвращает первое истинное () значение или последнее значение, если все ложные ().

значения: , , (пустая строка), , , .

Часто используется для присвоения значений по умолчанию. (Логическое И):

Возвращает первое ложное () значение или последнее значение, если все истинные ().

Часто используется для проверки нескольких условий или для условного выполнения кода (короткая схема вычисления).

(Логическое НЕ):

Преобразует операнд в булево значение, а затем инвертирует его. это , это .

Двойное НЕ () используется для явного преобразования значения в булев тип.

console.log(true || false); // true console.log(false || true); // true console.log(true || true); // true console.log(false || false); // false

console.log(1 || 0); // 1 (1 - truthy) console.log(null || "Привет"); // "Привет"

console.log(undefined || 0 || "" || "OK" || null); // "OK" console.log(null || undefined || 0); // 0 (последнее falsy)

console.log(true && false); // false console.log(false && true); // false console.log(true && true); // true console.log(false && false); // false

console.log(1 && 0); // 0 (0 - falsy) console.log("Привет" && null); // null

console.log("OK" && 1 && "текст"); // "текст" (последнее truthy) console.log("Привет" && 0 && "Еще текст"); // 0 (первое falsy)

let userLoggedIn = true;

userLoggedIn && console.log("Пользователь вошел!"); // Выведет, если userLoggedIn = true

console.log(!true); // false console.log(!false); // true console.log(!0); // true (0 - falsy) console.log(!""); // true ("" - falsy)

console.log(!"Привет"); // false ("Привет" - truthy)

console.log(!!null); // false console.log(!!"текст"); // true