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
Что будет на выходе?

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
Использование 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