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 matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
];

let flattenedMatrix = [];

for (let i = 0; i < matrix.length; i++) {
for (let j = 0; j < matrix[i].length; j++) {
flattenedMatrix.push(matrix[i][j]);
}
}

console.log(flattenedMatrix);


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

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

const data = [1, 2, 3, 4, 5];

const result = data.flatMap(num => Array(num).fill(num * 2));

console.log(result);


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

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

const sym = Symbol('unique');
const obj = {
[sym]: 'symbol value',
a: 1,
b: 2
};

const keys = Object.keys(obj);
const symbols = Object.getOwnPropertySymbols(obj);

console.log(keys.length, symbols.length);


Ответ: 2, 1

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

const words = ['apple', 'banana', 'cherry'];

const result = words.flatMap(word => word.split('').reverse());

console.log(result);


Ответ: ['e', 'l', 'p', 'p', 'a', 'e', 'n', 'a', 'b', 'h', 'c', 'e', 'r', 'r', 'y']

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

const items = [1, 2, 3, 4, 5];

const result = items.reduce((acc, val) => acc.concat(Array.from({ length: val }, () => val)), []);

console.log(result);


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

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

const data = [1, 2, 3, 4, 5];

const result = data.map(num => Array.from({ length: num }, (_, index) => index + 1));

console.log(result);


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

JavaScript test | ChatGPT | #JavaScript
Работа с локальным хранилищем

localStorage позволяет хранить данные на стороне клиента (в браузере). Методы setItem() используются для записи данных, getItem() для чтения данных и removeItem() для удаления данных из локального хранилища.

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

const obj = {
value: 1,
method() {
return this.value;
}
};

const boundMethod = obj.method.bind({ value: 2 });
console.log(boundMethod());


Ответ: 2

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

const obj1 = { a: 1 };
const obj2 = { b: 2 };
Object.setPrototypeOf(obj2, obj1);

console.log('a' in obj2);
console.log(obj2.hasOwnProperty('a'));
console.log(obj2.__proto__.a);


Ответ: true, false, 1

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

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

const result = array.map(num => Promise.resolve(num * 2));

console.log(result);


Ответ: [Promise, Promise, Promise, Promise, Promise]

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

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

async function complexMatrixOperation(matrix) {
const result = await Promise.all(matrix.map(async row => {
return await Promise.all(row.map(async num => {
if (num % 2 === 0) {
return await new Promise(resolve => setTimeout(() => resolve(num * 3), 200));
} else {
return await new Promise(resolve => setTimeout(() => resolve(num * 2), 100));
}
}));
}));

console.log(result);
}

complexMatrixOperation(matrix);


Ответ: [[2, 6, 6], [12, 10, 18], [14, 24, 18]]

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

const fetchData = async (id) => {
return new Promise((resolve) => {
setTimeout(() => resolve(`Data for ID ${id}`), 100);
});
};

const ids = [1, 2, 3];

async function complexAsyncFetch(ids) {
const result = await ids.reduce(async (acc, id) => {
const data = await fetchData(id);
const currentResult = await acc;
currentResult.push(data);
return currentResult;
}, Promise.resolve([]));

console.log(result);
}

complexAsyncFetch(ids);


Ответ: ['Data for ID 1', 'Data for ID 2', 'Data for ID 3']

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

async function asyncFunc() {
return 'async';
}

function promiseFunc() {
return new Promise(resolve => resolve('promise'));
}

(async function() {
const result = await (true ? asyncFunc() : promiseFunc());
console.log(result);
})();



Ответ: async


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

const data = [1, 2, 3, 4, 5];

const result = data.reduce((acc, val) => acc.concat(Array.from({ length: val }, (_, index) => val + index)), []);

console.log(result);


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

JavaScript test | ChatGPT | #JavaScript
Сортировка массивов объектов

В примере мы создаем массив объектов products, содержащий информацию о различных продуктах. Затем мы используем метод sort() для сортировки этого массива по полю price в порядке возрастания, используя функцию sortByPriceAscending в качестве функции сравнения. Вы можете создать аналогичные функции для сортировки в порядке убывания или для сортировки по другим полям объектов.

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

function recursivePascalTriangle(n, row = [1], triangle = []) {
triangle.push(row);
if (n === triangle.length) {
return triangle;
}
const nextRow = [1];
for (let i = 1; i < row.length; i++) {
nextRow.push(row[i] + row[i - 1]);
}
nextRow.push(1);
return recursivePascalTriangle(n, nextRow, triangle);
}

const result = recursivePascalTriangle(5);

console.log(result);


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

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

const obj1 = {
a: 1,
method() {
return this.a;
}
};

const obj2 = Object.create(obj1);
obj2.a = 2;

console.log(obj2.method());


Ответ: 2

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

function recursiveNQueens(n) {
const board = Array.from({ length: n }, () => Array.from({ length: n }, () => "."));
const solutions = [];
const isSafe = (row, col) => {
for (let i = 0; i < row; i++) {if (board[i][col] === "Q") return false;
const colOffset = row - i;
if (col - colOffset >= 0 && board[i][col - colOffset] === "Q") return false;
if (col + colOffset < n && board[i][col + colOffset] === "Q") return false;
}
return true;
};

const placeQueens = (row) => {
if (row === n) {
solutions.push(board.map(row => row.join("")));
return;
}
for (let col = 0; col < n; col++) {
if (isSafe(row, col)) {
board[row][col] = "Q";
placeQueens(row + 1);
board[row][col] = ".";
}
}
};
placeQueens(0);
return solutions;
}
const result = recursiveNQueens(4);

console.log(result);


Ответ: [[".Q..", "...Q", "Q...", "..Q."], ["..Q.", "Q...", "...Q", ".Q.."]]

JavaScript test | ChatGPT | #JavaScript
Использование WebAssembly для выполнения высокопроизводительного кода в браузере

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

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

const person = {};
person.name.toUpperCase();
console.log(person.name);


Ответ: TypeError: Cannot read property 'toUpperCase' of undefined

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

async function asyncFunc() {
return 'async function';
}

function* generator() {
yield 'generator';
yield asyncFunc();
yield 'done';
}

const gen = generator();
(async function() {
console.log(gen.next().value);
console.log(await gen.next().value);
console.log(gen.next().value);
})();


Ответ: generator, async function, done

JavaScript test | ChatGPT | #JavaScript