JS JavaScript  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Лёгкий  ·  👥 1 прошёл

Значения, типы и операторы JavaScript

Тест проверяет не список названий типов, а умение читать выражения, замечать неявные преобразования и предсказывать результат кода. В заданиях встречаются BigInt, Symbol, null, NaN, операторы короткого замыкания и ситуации, где привычная арифметика даёт неожиданное поведение.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. В тесте 20 вопросов и 55 минут; код лучше читать построчно, не полагаясь на первое впечатление. После завершения откроются общий процент, 4 тематических шкал и объяснение каждого решения.
Вопрос 1 из 20
Какой результат будет выведен?
JavaScript
console.log(typeof null);
Вопрос 2 из 20
Можно ли сложить BigInt 2n и обычное число 1 без явного преобразования?
JavaScript
const big = 2n;
const total = big + 1;
Вопрос 3 из 20
Какие результаты дадут обычный Symbol и глобальный реестр символов?
JavaScript
const a = Symbol("id");
const b = Symbol("id");
const c = Symbol.for("id");
const d = Symbol.for("id");
console.log(a === b, c === d);
Вопрос 4 из 20
API возвращает undefined, если поле не было передано, и null, если клиент намеренно очистил его. Какой подход лучше сохраняет это различие?
Вопрос 5 из 20
Почему Number.isNaN(value) обычно безопаснее глобальной функции isNaN(value) при проверке входа?
Вопрос 6 из 20
Что произойдёт при разборе этого выражения?
JavaScript
const result = 0 ?? 10 || 20;
Вопрос 7 из 20
Какое значение окажется в переменной calls?
JavaScript
let calls = 0;
const service = null;
service?.run(calls++);
console.log(calls);
Вопрос 8 из 20
Какие значения останутся после применения ??= к 0, null и 9?
JavaScript
let a = 0;
let b = null;
let c = 9;
a ??= 7;
b ??= 7;
c ??= 7;
console.log(a, b, c);
Вопрос 9 из 20
Нужно показать подпись, но сохранить допустимые значения 0 и пустую строку. Какое выражение подходит лучше всего?
Вопрос 10 из 20
Как точнее объяснить результат выражения 2 ** 3 ** 2?
Вопрос 11 из 20
Какую строку сформирует сложение пустого массива и обычного объекта?
JavaScript
const value = [] + {};
console.log(value);
Вопрос 12 из 20
Чем различатся результаты Number и parseInt для строки из пробелов?
JavaScript
console.log(Number("   "));
console.log(parseInt("   ", 10));
Вопрос 13 из 20
Как box преобразуется при сложении со строкой "2"?
JavaScript
const box = {
  valueOf() { return 5; },
  toString() { return "box"; }
};
console.log(box + "2");
Вопрос 14 из 20
Почему Boolean("false") возвращает true?
Вопрос 15 из 20
В поле приходит строка "12px". Нужно принять только строку, целиком представляющую число. Какой вариант лучше?
Вопрос 16 из 20
Что напечатает постфиксный инкремент при присваивании результата в y?
JavaScript
let x = 1;
const y = x++;
console.log(y, x);
Вопрос 17 из 20
Какой результат даст деструктуризация?
JavaScript
const source = { a: null };
const { a = 10, b = 10 } = source;
console.log(a, b);
Вопрос 18 из 20
Какую строку создаст шаблонный литерал с арифметическим выражением?
JavaScript
const text = `Цена: ${2 + 3 * 2}`;
console.log(text);
Вопрос 19 из 20
Какой способ надёжно отличает NaN от всех остальных чисел, не выполняя преобразование входа?
Вопрос 20 из 20
В чём практическое различие Object.is(0, -0) и 0 === -0?

Ответьте на все 20 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу