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

Ссылка: @Portal_v_IT

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

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

РКН: clck.ru/3KHeYk
Download Telegram
Что будет на выходе?

const array = [1, 2, [3, 4, [5, 6]]];
const result = array.flat(2).map(n => n * 2);

console.log(result);


Ответ: [2, 4, 6, 8, 10, 12]

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

const value = 0.1 + 0.2;
console.log(value === 0.3);


Ответ: false

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

const array = [1, 2, [3, 4, [5, 6]]];
const result = array.flat(2).map(n => n * 2);

console.log(result);


Ответ: 2, 4, 6, 8, 10, 12

JavaScript test | ChatGPT | #JavaScript
Использование Web Workers для многозадачности в веб-приложениях

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

JavaScript test | ChatGPT | #JavaScript
Использование sessionStorage для хранения данных на стороне клиента во время сессии

sessionStorage предоставляет временное хранилище данных, доступное только в течение текущей сессии браузера.

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

function greet() {
console.log('Hello, World!');
}
console.log(typeof greet);
console.log(typeof greet());


Ответ: function, Hello, World!, undefined

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

const array = [1, 2, 3, 4, 5];
const [first, ...rest] = array;

const modified = rest.map((n, i) => i % 2 === 0 ? n * 2 : n);

console.log(first, modified);


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

JavaScript test | ChatGPT | #JavaScript
Манипуляция с элементами страницы: создание, удаление и изменение HTML-элементов

Манипуляция с элементами страницы - это важная часть разработки веб-приложений, которая позволяет создавать, удалять и изменять HTML-элементы динамически с помощью JavaScript. Это особенно полезно при обновлении содержимого страницы без перезагрузки.

В данном примере мы создаем новый элемент div с текстом "Новый элемент" и классом "my-class". Затем мы добавляем этот элемент в конец body документа с помощью метода appendChild(). Мы также изменяем содержимое элемента с помощью свойства textContent и стилизуем его, устанавливая значение свойства backgroundColor.

Через 3 секунды мы удаляем элемент с помощью метода remove(). Это демонстрирует возможность удаления элементов из документа.

Таким образом, манипуляция с элементами страницы позволяет нам динамически создавать, изменять и удалять HTML-элементы, что открывает широкие возможности для создания интерактивных

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

var a = 1;

function foo() {
if (a) {
var a = 10;
}
console.log(a);
}

foo();


Ответ: undefined

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

const obj = { a: 1, b: 2 };
const proxy = new Proxy(obj, {
get(target, prop) {
return prop in target ? target[prop] : 0;
}
});

console.log(proxy.a, proxy.b, proxy.c);


Ответ: 1, 2, 0

JavaScript test | ChatGPT | #JavaScript
Работа с графикой: использование библиотеки 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