JavaScript test
9.72K subscribers
3.07K photos
14 videos
4.72K links
Проверка своих знаний по языку JavaScript.

Ссылка: @Portal_v_IT

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

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

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

const firstArrayData = [ 'JavaScript', 'Universe' ];
const secondArrayData = [ 'JavaScript', 'Universe' ];

console.log(firstArrayData == secondArrayData);
console.log(firstArrayData === secondArrayData);

Ответ: false, false

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

function createCounter() {
let count = 0;
return {
increment: () => ++count,
decrement: () => --count,
getValue: () => count
};
}

const counter1 = createCounter();
const counter2 = createCounter();
counter1.increment();
counter1.increment();
counter2.increment();
console.log(counter1.getValue() + counter2.getValue());

Ответ: 3

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

function createCounter() {
let count = 0;
return {
increment: () => ++count,
decrement: () => --count,
get: () => count
};
}

const counter1 = createCounter();
const counter2 = createCounter();
counter1.increment();
counter1.increment();
counter2.increment();
console.log(counter1.get(), counter2.get());
const { increment, get } = counter1;
increment();
console.log(get());

Ответ:
2 1 3


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

const step1 = multiply(2);
const step2 = step1(3);
const result1 = step2(4);

const result2 = multiply(2)(3)(4);

const partialMultiply = multiply(5);
const result3 = partialMultiply(2)(3);

const doubler = multiply(2)(1);
const result4 = doubler(7);

console.log(result1, result2, result3, result4);

Ответ: 24, 24, 30, 14

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

console.log('1');

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

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

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

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

console.log('7');

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

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

let symbol1 = Symbol('description');
let symbol2 = Symbol('description');

const obj = {
[symbol1]: 'value1',
[symbol2]: 'value2'
};

console.log(obj[symbol1]);
console.log(symbol1 === symbol2);

Ответ:
'value1' false


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

class LightMachine {
constructor() {
this.states = {
green: { next: 'yellow' },
yellow: { next: 'red' },
red: { next: 'green' }
};
this.currentState = 'green';
}

transition() {
this.currentState = this.states[this.currentState].next;
return this.currentState;
}
}

const lightMachine = new LightMachine();
let result = '';
for (let i = 0; i < 5; i++) {
result += lightMachine.transition() + ' ';
}
console.log(result.trim());

Ответ: yellow red green yellow red

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

const firstArrayData = [ 'JavaScript', 'Universe' ];
const secondArrayData = [ 'JavaScript', 'Universe' ];

console.log(firstArrayData == secondArrayData);
console.log(firstArrayData === secondArrayData);

Ответ: false, false

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
По данным McKinsey, генеративный AI экономит до 30% рабочего времени. Проблема в том, что лидеры рынка меняются каждые пару месяцев — и вместе с этим растёт количество вкладок, аккаунтов и подписок.

MetaMind решает это: все основные нейросети для текста и изображений собраны в одном телеграм-боте.

Можно переключаться между моделями и сравнивать результаты, не выходя из чата
— прямо по ссылке.
❗️Что будет на выходе:

const obj = { a: 1, b: { c: 2 } };
const frozen = Object.freeze(obj);
frozen.a = 99;
frozen.b.c = 88;
frozen.d = 77;

const sealed = Object.seal({ x: 10, y: 20 });
sealed.x = 30;
sealed.z = 40;
delete sealed.y;

console.log(obj.a, obj.b.c, obj.d);
console.log(sealed.x, sealed.y, sealed.z);

Ответ: 1 88 undefined, 30 20 undefined

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

const source = { a: 1, b: { c: 2 } };
const target1 = Object.assign({}, source);
const target2 = { ...source };

source.b.c = 99;
target1.a = 10;
target2.b.c = 50;

console.log(source.a);
console.log(source.b.c);
console.log(target1.a);
console.log(target1.b.c);
console.log(target2.a);
console.log(target2.b.c);

Ответ: 1 50 10 50 1 50

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

function* fibonacci() {
let [a, b] = [0, 1];
while (true) {
yield a;
[a, b] = [b, a + b];
}
}

function* takeWhile(generator, predicate) {
for (const value of generator) {
if (!predicate(value)) break;
yield value;
}
}

const fib = fibonacci();
const smallFibs = takeWhile(fib, x => x < 20);
console.log([...smallFibs].join(','));

Ответ: 0,1,1,2,3,4,8,13

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

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

main({ x: 5 });

Ответ: 5, undefined

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

const memoize = (fn) => {
const cache = new Map();
return (...args) => {
const key = JSON.stringify(args);
if (cache.has(key)) return cache.get(key);
const result = fn(...args);
cache.set(key, result);
return result;
};
};

const fibonacci = memoize((n) => {
if (n <= 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
});

console.log(fibonacci(10));
console.log(fibonacci(5));
console.log(fibonacci(10));

Ответ: 55 5 55

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

const matrix = [
[2, 4],
[6, 8],
];

const result = matrix.reduceRight((acc, row) => acc.concat(row.map(num => num * 2)), []);

console.log(result);

Ответ: [12, 16, 4, 8]

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

let counter = 0;

const increment = () => ++counter;
const getValue = () => counter;

const obj = {
get value() {
increment();
return getValue();
}
};

console.log(obj.value);
console.log(obj.value);
console.log(counter);

Ответ: 1 2 2

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

async function fetchData() {
console.log('1');
return Promise.resolve('data');
}

async function processData() {
console.log('2');
const result = await fetchData();
console.log('3');
return result;
}

console.log('4');
processData().then(() => console.log('5'));
console.log('6');

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

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

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

main({ x: 5 });

Ответ: 5, undefined

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

function createCounter() {
let count = 0;
return {
increment: () => ++count,
decrement: () => --count,
getValue: () => count
};
}

const counter1 = createCounter();
const counter2 = createCounter();
counter1.increment();
counter1.increment();
counter2.increment();
console.log(counter1.getValue(), counter2.getValue());
counter1.decrement();
console.log(counter1.getValue(), counter2.getValue());

Ответ: 2 1 1 1

JavaScript test | #JavaScript