Контрольная работа по JavaScript
тест

Коновец Тимур Евгеньевич

Документ представляет собой контрольную работу по JavaScript по дисциплине «Основы веб-программирования». Работа рассчитана на 60 минут, максимальный балл — 100. Состоит из четырёх блоков:

  • Блок А (20 баллов) — тест из 20 вопросов с выбором одного правильного ответа (охватывает типы данных, операции, условия, циклы, массивы, DOM и основы работы с браузером).

  • Блок Б (30 баллов) — три письменных задания: написание функции без filter(), исправление ошибок в коде с prompt и выводом сообщения, работа с объектом студента (вычисление среднего балла, добавление свойства, форматированный вывод).

  • Блок В (30 баллов) — практическое задание на создание счётчика кликов с использованием чистого JavaScript (создание элементов через document.createElement, обработчики событий, изменение фона в зависимости от значения).

  • Блок Г (20 баллов) — анализ кода на тему области видимости переменных, объявленных через let (четыре вопроса с объяснением).

В работе проверяются базовые знания синтаксиса, понимание области видимости, работа с DOM, событиями и объектами. Прилагаются критерии оценки и шкала перевода баллов в традиционную оценку.

 

Скачать:

ВложениеРазмер
Файл kontrolnaya.docx24.1 КБ

Предварительный просмотр:

Контрольная работа по JavaScript

Дисциплина: Основы веб-программирования
Время выполнения: 60 минут
Максимальный балл: 100

Структура работы:

  • Блок А: Тест (20 вопросов × 1 балл = 20 баллов)
  • Блок Б: Письменные задания (3 задания × 10 баллов = 30 баллов)
  • Блок В: Практическое задание (30 баллов)
  • Блок Г: Анализ кода (20 баллов)

Разрешается: использовать ручку, черновик.
Запрещается: любые электронные устройства, учебники, конспекты.

БЛОК А. ТЕСТ (20 баллов)

Выберите один правильный вариант ответа и обведите его номер.

  1. Какой тип данных имеет переменная let a = null;?
    А)
    null
    Б)
    object
    В)
    undefined
    Г)
    number
  2. Что выведет console.log(typeof NaN);?
    А)
    "NaN"
    Б)
    "number"
    В)
    "undefined"
    Г)
    "object"
  3. Какое из значений является ложным (falsy) в JavaScript?
    А)
    "false"
    Б)
    0
    В)
    []
    Г)
    {}
  4. Чему равно 5 + "5"?
    А)
    10
    Б)
    "55"
    В)
    Error
    Г)
    "10"
  5. Что делает метод push() при работе с массивом?
    А) удаляет последний элемент
    Б) добавляет элемент в начало
    В) добавляет элемент в конец
    Г) удаляет первый элемент
  6. Как объявить переменную, значение которой нельзя изменить?
    А)
    let
    Б)
    var
    В)
    const
    Г)
    static
  7. Какое значение вернёт Boolean([])?
    А)
    true
    Б)
    false
    В)
    undefined
    Г)
    null
  8. Как правильно записать условие «если x больше 0 и меньше 10»?
    А)
    if (x > 0 && x < 10)
    Б)
    if (0 < x < 10)
    В)
    if (x > 0 || x < 10)
    Г)
    if (x > 0 & x < 10)
  9. Сколько раз выполнится цикл?

for (let i = 0; i < 3; i++) { }

А) 2
Б) 3
В) 4
Г) 0

  1. Что выведет console.log(2 ** 3);?
    А) 6
    Б) 8
    В) 9
    Г) Error
  2. Какой способ выбора элемента НЕ существует в чистом JavaScript?
    А)
    getElementById()
    Б)
    getElementsByClassName()
    В)
    querySelector()
    Г)
    selectElementByName()
  3. Что делает метод addEventListener?
    А) добавляет обработчик события
    Б) создаёт новое событие
    В) удаляет элемент
    Г) изменяет стиль элемента
  4. Какая функция используется для генерации случайного числа?
    А)
    Math.random()
    Б)
    Math.round()
    В)
    parseInt()
    Г)
    Number()
  5. Чему равно !!"hello"?
    А)
    true
    Б)
    false
    В)
    "hello"
    Г)
    undefined
  6. Как получить первый элемент массива arr?
    А)
    arr[0]
    Б)
    arr.first()
    В)
    arr[1]
    Г)
    arr.pop()
  7. Какое ключевое слово используется для остановки цикла?
    А)
    break
    Б)
    continue
    В)
    stop
    Г)
    return
  8. Что такое localStorage?
    А) место для хранения данных на сервере
    Б) объект для хранения данных в браузере
    В) тип переменной
    Г) функция для вывода данных
  9. Какое значение будет у let x = (5 > 3) ? "Да" : "Нет";?
    А)
    "Да"
    Б)
    "Нет"
    В)
    true
    Г)
    5
  10. Как проверить, является ли переменная массивом?
    А)
    typeof arr === "array"
    Б)
    Array.isArray(arr)
    В)
    arr.isArray()
    Г)
    arr instanceof Object
  11. Что выведет console.log([] + []);?
    А)
    "" (пустая строка)
    Б)
    []
    В)
    0
    Г)
    NaN

БЛОК Б. ПИСЬМЕННЫЕ ЗАДАНИЯ (30 баллов)

Задание Б1 (10 баллов).
Напишите функцию
getEvenNumbers(arr), которая принимает массив чисел и возвращает новый массив, содержащий только чётные числа из исходного. Запрещено использовать встроенный метод filter(). Реализуйте через цикл.

Место для ответа:

function getEvenNumbers(arr) {

   // ваш код

}

Задание Б2 (10 баллов).
Исправьте ошибки в приведённом ниже коде так, чтобы он работал корректно. Код должен запрашивать у пользователя возраст через
prompt и выводить на страницу сообщение: если возраст >= 18 – "Доступ разрешён" зелёным цветом, иначе – "Доступ запрещён" красным цветом.

let age = prompt("Сколько лет?");

let output = getElementById("message");

if (age => 18) {

   output.innerHTML = Доступ разрешён;

} else {

   output.innerHTML = "Доступ запрещён";

}

Напишите исправленный полностью код (можно с добавлением HTML-разметки).

Задание Б3 (10 баллов).
Дан объект:

const student = {

   name: "Анна",

   age: 19,

   group: "ИС-21",

   grades: [5, 4, 5, 3, 4]

};

Напишите код (функцию или последовательность операторов), который:

  1. Вычисляет средний балл студента (среднее арифметическое массива grades).
  2. Добавляет в объект новое свойство average с этим значением.
  3. Выводит в консоль строку: "Студент Анна, группа ИС-21, средний балл: X.XX", где X.XX – средний балл с двумя знаками после запятой.

БЛОК В. ПРАКТИЧЕСКОЕ ЗАДАНИЕ (30 баллов)

Условие:
Создайте HTML-страницу (опишите только
тело документа и скрипт), которая реализует счётчик кликов со следующими требованиями:

  • На странице есть кнопка «Нажми меня».
  • Под кнопкой отображается текущее количество нажатий (счёт начинается с 0).
  • Рядом с кнопкой есть кнопка «Сброс», которая обнуляет счётчик.
  • Также есть кнопка «+5», которая увеличивает счётчик на 5 за один клик.
  • При достижении счётчиком значения 10, фон страницы становится жёлтым, а при достижении 20 – зелёным.
    (Если счёт больше 20 – остаётся зелёным, при сбросе фон возвращается в исходное состояние – белый).

Требования к коду:

  • Использовать только чистый JavaScript (без библиотек).
  • Все элементы должны быть созданы с помощью document.createElement и добавлены на страницу.
  • Для обработки кликов использовать addEventListener.

Ожидаемый ответ: напишите HTML-структуру () и весь JavaScript-код внутри тега