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

Классы и приватные поля

Тест разбирает классы как синтаксис над прототипами: конструкторы, super, поля экземпляра, методы, статические члены и настоящие приватные имена #field. Вопросы требуют учитывать порядок инициализации и различие экземпляра с самим классом.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. В тесте 20 вопросов и 55 минут; код лучше читать построчно, не полагаясь на первое впечатление. После завершения откроются общий процент, 4 тематических шкал и объяснение каждого решения.
Вопрос 1 из 20
Что произойдёт при вызове класса без new?
JavaScript
class Person {}
const p = Person();
Вопрос 2 из 20
Какое значение окажется в item.x?
JavaScript
class Item {
  x = 1;
  constructor() {
    this.x = 2;
  }
}
const item = new Item();
console.log(item.x);
Вопрос 3 из 20
Что произойдёт в производном constructor?
JavaScript
class Base {}
class Child extends Base {
  constructor() {
    this.value = 1;
    super();
  }
}
new Child();
Вопрос 4 из 20
Что случится, если constructor базового класса явно вернёт объект?
Вопрос 5 из 20
Почему тяжёлый асинхронный ввод-вывод не стоит помещать в constructor?
Вопрос 6 из 20
Где находится обычный метод read?
JavaScript
class Store {
  read() { return 1; }
}
const store = new Store();
console.log(Object.hasOwn(store, "read"));
Вопрос 7 из 20
Что выведет переопределённый метод?
JavaScript
class Base { name() { return "base"; } }
class Child extends Base {
  name() { return `${super.name()}-child`; }
}
console.log(new Child().name());
Вопрос 8 из 20
Какое сравнение вернёт true для двух экземпляров?
JavaScript
class Button {
  read() { return 1; }
  click = () => 2;
}
const a = new Button();
const b = new Button();
Вопрос 9 из 20
Почему стрелочное поле удобно как callback, но имеет цену?
Вопрос 10 из 20
Что проверяет child instanceof Base?
Вопрос 11 из 20
Что произойдёт при прямом чтении obj.#value вне класса?
JavaScript
class Box {
  #value = 3;
  read() { return this.#value; }
}
const obj = new Box();
console.log(obj.#value);
Вопрос 12 из 20
Что произойдёт при вызове метода с чужим this?
JavaScript
class Box {
  #value = 3;
  read() { return this.#value; }
}
const read = new Box().read;
console.log(read.call({}));
Вопрос 13 из 20
Может ли подкласс напрямую обратиться к #secret базового класса?
Вопрос 14 из 20
Попадает ли приватное поле #value в JSON.stringify(instance)?
Вопрос 15 из 20
Для чего внутри класса можно использовать выражение #value in obj?
Вопрос 16 из 20
Что произойдёт при store.create()?
JavaScript
class Store {
  static create() { return new Store(); }
}
const store = new Store();
store.create();
Вопрос 17 из 20
Что выведет вызов Child.kind()?
JavaScript
class Base {
  static kind() { return this.name; }
}
class Child extends Base {}
console.log(Child.kind());
Вопрос 18 из 20
Как изменятся счётчики?
JavaScript
class Base { static count = 1; }
class Child extends Base {}
Child.count++;
console.log(Base.count, Child.count);
Вопрос 19 из 20
Когда выполняется static block класса?
Вопрос 20 из 20
Какой риск у изменяемого статического поля с общим кэшем?

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

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

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

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