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

Ссылка: @Portal_v_IT

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

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

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

const map = new WeakMap();

let obj1 = { name: 'user1' };
let obj2 = { name: 'user2' };

map.set(obj1, 'data for user1');
map.set(obj2, 'data for user2');

console.log(map.has(obj1));
obj1 = null;

console.log(map.has(obj1));
console.log(map.get(obj2));

Ответ: true, false, data, for user2

JavaScript test | #JavaScript
❗️Что будет на выходе:

function Person(name) {
this.name = name;
this.sayName = () => console.log(this.name);
}

const person1 = new Person('David');
const person2 = { name: 'Not David', sayName: person1.sayName };

person2.sayName();

Ответ: David

JavaScript test | #JavaScript
❗️Что будет на выходе:

const user = {
name: 'Sarah',
age: 28,
getName() {
return this.name;
}
};

const { getName } = user;
const boundGetName = user.getName.bind(user);

console.log(getName());
console.log(boundGetName());
console.log(user.getName());

Ответ: undefined Sarah Sarah

JavaScript test | #JavaScript
❗️Что будет на выходе:

function* outer() {
yield 1;
yield* inner();
yield 4;
}

function* inner() {
yield 2;
yield 3;
}

const gen = outer();
console.log(gen.next().value);
console.log(gen.next().value);
console.log(gen.next().value);
console.log(gen.next().value);

Ответ: 1 2 3 4
JavaScript test | #JavaScript
❗️Что будет на выходе:

function* counter() {
let i = 1;
while (true) {
const reset = yield i++;
if (reset) {
i = 1;
}
}
}

const gen = counter();
console.log(gen.next().value);
console.log(gen.next().value);
console.log(gen.next(true).value);
console.log(gen.next().value);

Ответ: 1, 2, 1, 2

JavaScript test | #JavaScript
❗️Что будет на выходе:
const config = { api: 'v1', timeout: 5000 };
Object.seal(config);

const settings = { theme: 'dark', lang: 'en' };
Object.freeze(settings);

config.api = 'v2';
config.retries = 3;
settings.theme = 'light';
settings.debug = true;

console.log(config.api);
console.log(config.retries);
console.log(settings.theme);
console.log(settings.debug);

Ответ: v2 undefined dark undefined

JavaScript test | #JavaScript
❗️Что будет на выходе:
const map = new Map();
const key1 = {};
const key2 = key1;

map.set(key1, "Value for key1");
map.set(key2, "Value for key2");

console.log(map.get(key2));
console.log(map.get(key1));

Ответ:
Value for key2
Value for key2


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

const defaultSettings = {
theme: 'light',
notifications: true,
location: 'USA'
};

const userSettings = {
theme: 'dark',
location: 'Canada'
};

const finalSettings = {
...defaultSettings,
...userSettings
};

console.log(finalSettings);


Ответ: { theme: 'dark', notifications: true, location: 'Canada' }

JavaScript test | #JavaScript
❗️Что будет на выходе:

const obj = { a: 1, b: 2, c: 3 };
const result = Object.values(obj).reduce((acc, curr) => acc * curr, 1);
console.log(result);

Ответ: 6

JavaScript test | #JavaScript
❗️Что будет на выходе:

const person = {
name: "John",
greet: function() {
const getMessage = () => `Hello, ${this.name}`;
return getMessage();
}
};

console.log(person.greet());

Ответ: Hello, John

JavaScript test | #JavaScript
❗️Что будет на выходе:

console.log('1');

setTimeout(() => console.log('2'), 0);

Promise.resolve().then(() => console.log('3'));

queueMicrotask(() => console.log('4'));

setTimeout(() => console.log('5'), 0);

Promise.resolve().then(() => {
console.log('6');
return Promise.resolve();
}).then(() => console.log('7'));

console.log('8');

Ответ: 1 8 3 4 6 7 2 5

JavaScript test | #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 | #JavaScript
❗️Что будет на выходе:

async function processValues() {
try {
console.log('Start');
const a = await Promise.resolve('First');
console.log(a);
const b = await Promise.reject('Error');
console.log(b);
return 'Done';
} catch (err) {
console.log(err);
return 'Recovered';
} finally {
console.log('Finally');
}
}

processValues().then(result => console.log(result));

Ответ: Start First Error Finally Recovered

JavaScript test | #JavaScript
❗️Что будет на выходе:

const data = [
{ type: 'income', amount: 1000, category: 'salary' },
{ type: 'expense', amount: 200, category: 'food' },
{ type: 'income', amount: 500, category: 'freelance' },
{ type: 'expense', amount: 150, category: 'transport' }
];

const result = data.reduce((acc, item) => {
const key = item.type;
acc[key] = (acc[key] || 0) + item.amount;
return acc;
}, {});

console.log(result.income - result.expense);

Ответ: 1150

JavaScript test | #JavaScript
❗️Что будет на выходе:

async function processData() {
const promise1 = Promise.resolve('first');
const promise2 = Promise.reject('error');
const promise3 = Promise.resolve('third');

try {
const result = await Promise.allSettled([promise1, promise2, promise3]);
console.log(result[0].status);
console.log(result[1].reason);
console.log(result[2].value);
} catch (error) {
console.log('caught:', error);
}
}

processData();

Ответ: fulfilled error third
JavaScript test | #JavaScript
❗️Что будет на выходе:

const data = { a: 1, b: 2, c: 3 };
const { a, ...rest } = data;
const newObj = { ...rest, a, d: 4 };

const arr = [1, 2, 3, 4, 5];
const [first, , third, ...remaining] = arr;
const result = [...remaining, third, first];

console.log(newObj);
console.log(result);

Ответ: { b: 2, c: 3, a: 1, d: 4 } [4, 5, 3, 1]

JavaScript test | #JavaScript
❗️Что будет на выходе:

async function foo() {
console.log('Start');
await Promise.resolve().then(() => {
console.log('Inside Promise');
});
console.log('End');
}

foo();
console.log('Outside');

Ответ: Start, Outside, Inside, Promise, End

JavaScript test | #JavaScript
❗️Что будет на выходе:

const obj = { a: 1, b: 2, c: 3 };
const result = Object.values(obj).reduce((acc, curr) => acc * curr, 1);
console.log(result);

Ответ: 6

JavaScript test | #JavaScript
❗️Что будет на выходе:

function main({ x, y } = { x: 1, y: 2 }) {
console.log(x, y);
}

main({ x: 5 });

Ответ: 5, undefined

JavaScript test | #JavaScript
❗️Что будет на выходе:

const pipe = (...fns) => (value) => fns.reduce((acc, fn) => fn(acc), value);

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

const transform = pipe(
add(5),
multiply(3),
subtract(2)
);

console.log(transform(4));
console.log(transform(0));

Ответ: 25 13

JavaScript test | #JavaScript