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
Работа с локализацией: перевод и форматирование текста на разных языках

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

Для перевода текста на разные языки в 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
Что будет на выходе?

const matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];

const flattened = matrix.reduce((acc, row) =>
acc.concat(row), []);
console.log(flattened);


Ответ: [1, 2, 3, 4, 5, 6, 7, 8, 9]

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

function Foo() {
this.bar = 1;
}

Foo.prototype.bar = 2;

const foo = new Foo();
console.log(foo.bar);


Ответ: 1

JavaScript test | ChatGPT | #JavaScript
Использование JavaScript Typed Arrays для работы с бинарными данными

Typed Arrays позволяют эффективно работать с бинарными данными, такими как изображения, звуки или сетевые пакеты.

JavaScript test | ChatGPT | #JavaScript
Использование JavaScript FinalizationRegistry для управления ресурсами

FinalizationRegistry предоставляет механизм для финализации ресурсов (например, освобождение памяти), когда объект больше не используется.

JavaScript test | ChatGPT | #JavaScript