JavaScript test
10.2K subscribers
3.05K photos
6 videos
4.42K links
Проверка своих знаний по языку JavaScript.

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: telega.in/c/js_test

РКН: clck.ru/3KHeYk
Download Telegram
Работа с графикой: использование библиотеки Canvas для рисования и визуализации данных

Работа с графикой является важной частью разработки веб-приложений, особенно при рисовании и визуализации данных. Для этого разработчики часто используют библиотеку Canvas, которая предоставляет мощные инструменты для создания интерактивных и красочных графических элементов.

Canvas - это элемент HTML5, который позволяет рисовать графику с помощью JavaScript. Он предоставляет API для создания и управления контекстом рисования, на котором можно рисовать линии, фигуры, текст и многое другое.

В данном примере мы получаем контекст рисования Canvas с помощью метода getContext(). Затем мы используем методы контекста, такие как fillRect() для рисования прямоугольника, stroke() для рисования линии и fillText() для рисования текста.

Мы также можем устанавливать различные свойства контекста, такие как цвет заливки (fillStyle), цвет обводки (strokeStyle), толщина линии (lineWidth).

JavaScript test | ChatGPT | #JavaScript
Использование MutationObserver для отслеживания изменений DOM-элементов

MutationObserver позволяет отслеживать изменения в DOM-структуре и реагировать на них в коде.

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

const add = x => y => x + y;
const multiply = x => y => x * y;
const subtract = x => y => x - y;

const result = add(10)(multiply(2)(subtract(5)(3)));
console.log(result);


Ответ: 14

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

const array = [1, 2, 3];
array[10] = 4;

console.log(array.length);
console.log(array.includes(undefined));


Ответ: 11, true

JavaScript test | ChatGPT | #JavaScript
Работа с локализацией: перевод и форматирование текста на разных языках

Работа с локализацией является важной частью разработки веб-приложений, особенно при создании мультиязычных интерфейсов.

Для перевода текста на разные языки в JavaScript можно использовать объект Intl, который предоставляет функциональность для локализации. С помощью объекта Intl можно форматировать числа, даты, валюты и другие типы данных в соответствии с правилами языка и региона.

В данном примере мы создаем объект Intl с помощью конструктора new Intl.NumberFormat(). Мы указываем язык и регион (в данном случае 'en-US' для английского языка в США) и опции форматирования (в данном случае стиль 'currency' и валюту 'USD').

Затем мы используем метод format() объекта Intl для форматирования числа amount в соответствии с указанными опциями. В данном примере мы форматируем число в денежный формат.

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

const clothes = [ 'jacket', 't-shirt' ];
clothes.length = 0;
console.log(clothes[0]);


Ответ: undefined

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

const obj = {
a: 1,
b() {
return this.a;
}
};

const b = obj.b;
console.log(b.call({ a: 2 }));


Ответ: 2

JavaScript test | ChatGPT | #JavaScript
Рекурсия и оптимизация рекурсивных функций

В первой части кода есть простая рекурсивная функция factorial, которая вычисляет факториал числа n. Она вызывает себя с аргументом n - 1, пока n не станет меньше или равно 1.

Во второй части кода представлена оптимизированная версия функции factorialMemoized, которая использует мемоизацию. Мемоизация - это техника, при которой результаты предыдущих вызовов функции сохраняются в памяти и возвращаются в случае повторного вызова с теми же аргументами. В данном случае, мы используем объект memo для хранения результатов предыдущих вызовов factorialMemoized. Если результат уже вычислен для конкретного n, мы возвращаем его из memo, иначе вычисляем и сохраняем в memo.

Таким образом, оптимизированная версия factorialMemoized более эффективна при вычислении факториала для больших чисел, так как избегает переполнения стека вызовов, и вычисляет результаты только один раз для каждого n.

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

let person = {
name: 'Leonardo'
};

Object.freeze(person);
person.name = 'Lima';

console.log(person.name);


Ответ: 'Leonardo'

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

let a = NaN;
let b = NaN;

console.log(a == b);
console.log(a === b);


Ответ: false, false

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

const array = [1, 2, 3, 4, 5];
const result = array.some(n => n % 2 === 0) && array.every(n => n < 10);

console.log(result);


Ответ: true

JavaScript test | ChatGPT | #JavaScript
Использование MutationObserver для отслеживания изменений DOM-элементов

MutationObserver позволяет отслеживать изменения в DOM-структуре и реагировать на них в коде.

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

const x = 1;

function foo() {
console.log(x);
const x = 2;
}

foo();


Ответ: Error

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

function foo() {
return bar();
}

function bar() {
return foo();
}

foo();


Ответ: The code results in a maximum call exceeded error.

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

let foo = null;
console.log(foo === null);
console.log(typeof foo === 'object');


Ответ: true true

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

const obj1 = { a: 1, b: { c: 2 } };
const obj2 = { ...obj1 };

obj1.b.c = 3;

console.log(obj2.b.c);


Ответ: 3

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

const arr = [1, 2, 3, 4, 5];
const sliced = arr.slice(1, 3);
const spliced = arr.splice(1, 3);

console.log(sliced, spliced, arr);


Ответ: [2, 3], [2, 3, 4], [1, 5]

JavaScript test | ChatGPT | #JavaScript
Использование JavaScript Service Workers для создания оффлайн-приложений

Service Workers позволяют создавать веб-приложения, которые могут работать оффлайн, кэшируя ресурсы на стороне клиента.

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

const x = 10;
const y = (() => {
try {
throw new Error();
} catch (x) {
return x;
}
})();

console.log(x, y);


Ответ: 10, [Error]

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

const obj = { a: 1, b: 2 };
const obj2 = { ...obj, b: 3 };

const samePrototype = Object.getPrototypeOf(obj) === Object.getPrototypeOf(obj2);

console.log(samePrototype);


Ответ: true

JavaScript test | ChatGPT | #JavaScript
Использование JavaScript Intersection Observer API для отслеживания видимости элементов на странице

Intersection Observer API позволяет отслеживать, когда целевые элементы входят или выходят из видимой области окна браузера или другого элемента.

JavaScript test | ChatGPT | #JavaScript