🏆 Правильных ответов: 14 из 15.
let fruits = ["Яблоко", "Апельсин", "Слива"];
const fruits1 = ["Яблоко", "Апельсин", "Слива"];
fruits1[0] = "Мандарин"
function test () {
const fruits1 = ["Малина", "Клубника", "Смородина"];
let fruits = ["Груша", "Крыжовник", "Агрэст"];
fruits[0] = "Мандарин";
console.log(fruits); }
test()
console.log(fruits1);
console.log(fruits);
-
["Малина", "Клубника", "Смородина"]
Q2. Перед вами поставили задачу написать веб-приложение «Крестики-нолики». По техническому заданию вам необходимо сохранять состояние игры. Например, вы можете сохранить текущего игрока, расположение крестиков и ноликов на игровом поле и другие данные, чтобы игра могла быть возобновлена после перезагрузки страницы.
- LocalStorage
"10" + 2 * "5"
- 1010
Q4. Из массива чисел вам нужно сначала отфильтровать четные числа, затем удвоить их и, наконец, вычислить сумму. Какой код это выполняет?
- numbers.filter(n => n % 2 === 0).map(n => n * 2).reduce((sum, n) => sum + n, 0)
- Функция-конструктор (constructor function)
functiоn countеr() {
var cоunt = 0;
return functiоn() {
return ++cоunt;
}
}
vаr incrеment = cоuntеr();
cоnsolе.log(increment());
cоnsolе.log(increment());
cоnsolе.log(increment());
- 1, 2, 3
Q7. В какой последовательности выполняются операции в следующем коде, который включает асинхронные операции и взаимодействие с сетью? Учтите, что обработка запроса не будет закончена до того, как выполнится весь синхронный код программы.
consolе.lоg("Начало");
sеtTimeоut(() => {
console.lоg("SetTimeоut 1");
}, 0);
fеtch("https://api.example.cоm/data")
.thеn(respоnse => responsе.json())
.thеn(data => {
consоlе.log("Данные получены:", data);
});
sеtTimeоut(() => {
consоle.log("SеtTimeоut 2");
}, 0);
consоlе.lоg("Конец");
- Начало, Конец, SetTimeout 1, SetTimeout 2, Данные получены: [данные].
- Map гарантирует, что элементы будут храниться в порядке добавления.
Q9. Вам нужно создать неглубокую копию объекта и массива в JavaScript, при этом важно сохранить методы, определенные в самом объекте (без учета прототипной цепочки). Какой из следующих методов или подходов вы выберете?
-
const newObj = {...obj}, newArr = [...arr]
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(`${this.name} makes a noise.`);
}
}
class Dog extends Animal {
speak() {
super.speak();
console.log(`${this.name} barks.`);
}
}
let dog = new Dog("Rex");
dog.speak();
- "Rex makes a noise." и затем "Rex barks."
Q11. Вы разрабатываете интерфейс для интернет-магазина, который должен содержать витрину для тысячи товаров. Какой подход стоит использовать, чтобы обеспечить плавное и быстрое отображение этих товаров при прокрутке и избежать задержек и «зависаний» интерфейса?
- Реализовать виртуальный скроллинг для отображения товаров в текущем viewport (видимой области) браузера
Q12. Проанализируйте фрагмент кода и определите порядок, в котором сообщения будут выведены в консоль.
console.log('1');
setTimeout(function () {
console.log('2');
Promise.resolve().then(function () {
console.log('3');
});
}, 0);
Promise.resolve().then(function () {
console.log('4');
setTimeout(function () {
console.log('5');
}, 0);
});
requestAnimationFrame(function () {
console.log('7');
});
console.log('6');
- 1, 6, 4, 7, 2, 3, 5
- Для автоматического определения и удаления неиспользуемого кода во время сборки
- Используя комбинацию методов
document.createElement()
иdocument.appendChild()
Q15. Вы работаете над SPA (Single Page Application), которое активно обращается к API для обработки действий пользователя и вывода изменяющегося контента. Ваша задача — увеличить производительность приложения и сократить время полной первой отрисовки страницы. У вас в наличии мощный сервер, вы не ограничены пропускной способностью сетевого оборудования.
- Server-Side Rendering (SSR)