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
Осталось 24 часа, чтобы забрать 👇🏼

- доступ к бесплатному интенсиву "Первые деньги на вайбкодинге" (старт уже завтра 7.04 в 19.00)

- уроки по программированию с нейронками

- 50 бесплатных нейросетей, чтобы кодить без остановки

- «Библиотека промптов для заработка на вайбкодинге», которые помогут упаковать портфолио и общаться с клиентами так, чтобы покупали

Все бонусы уже ждут тебя в закрытом канале по вайбкодингу👇

Вступить в закрытый канал
Вступить в закрытый канал
Вступить в закрытый канал
❗️Что будет на выходе:

async function getData() {
return Promise.resolve(1);
}

async function process() {
try {
const x = await getData();
const y = await Promise.resolve(x + 1);
console.log(y + await Promise.resolve(1));
} catch(err) {
console.log('Error');
}
}

process();

Ответ:
3

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

const nums = [1, 2, 3, 4];
const res = nums.reduce((acc, val) => acc + val, 2);
console.log(typeof res);

Ответ:
number


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

function trickyScope() {
let x = 10;
if (true) {
let x = 20;
console.log(x); // A
}
console.log(x); // B
{
let x = 30;
console.log(x); // C
}
console.log(x); // D
}

trickyScope();

Ответ: 20 10 30 10


JavaScript test | #JavaScript & Max
Лови список полезных IT каналов в Max 🇷🇺

Архиватор – крупная база слитых айти курсов по программированию

Сливакер – отобранный архив полезных курсов для программистов

Полка Разработчика – сборник книг для изучения Python, JS, Java и других языков программирования;

Записки Фронтендера -- опытный Frontend-разработчик собрал все самое основное

Записки Бэкендера -- а тут опытный Backend-разработчик подбирает самое полезное

Записки Питониста -- здесь думаю итак понятно, питонисты заходите

Code Learning – ютуб в мире программистов, сборник видео для обучения

Графика и Дизайн – сборник полезных курсов и видео для полного погружения в дизайн

Нейролента – публикуем самое актуальное из мира нейросетей

Windows Community -- все что связанно с Windows

DevHumor – все что выше, без юмора не понять

Находки Программиста – подбираем все самое нужно для программистов
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Что будет на выходе:

const counter = {
count: 0,
increment() {
this.count++;
return this.count;
}
};

const inc = counter.increment;
const boundInc = counter.increment.bind(counter);

console.log([
counter.increment(),
inc(),
boundInc(),
counter.count
]);

Ответ: [1, NaN, 2, 2]

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

var str="abcdef";
console.log( str.match(/./g) )
console.log( str.match(/../g) )
console.log( str.match(/.../g) )

Ответ:
[ 'a', 'b', 'c', 'd', 'e', 'f' ]
[ 'ab', 'cd', 'ef' ]
[ 'abc', 'def' ]


JavaScript test | #JavaScript & Max
❗️Что будет на выходе:
function processConfig(config) {
const cache = config.cache ?? true;
const timeout = config.timeout ?? 1000;
const retries = config.retries ?? 3;

return {
useCache: cache,
timeoutMs: timeout,
maxRetries: retries
};
}

const result = processConfig({ timeout: 0, retries: false });
console.log(result);


Ответ: { useCache: true, timeoutMs: 0, maxRetries: false }

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

const team = {
name: 'Eagles',
players: ['Smith', 'Johnson', 'Williams'],
coach: { name: 'Brown', experience: 12 },
stats: { wins: 10, losses: 6 }
};

const {
name: teamName,
players: [firstPlayer, , thirdPlayer],
coach: { name },
stats: { wins, draws = 0 }
} = team;

console.log(`${teamName}-${firstPlayer}-${thirdPlayer}-${name}-${wins}-${draws}`);

Ответ:
Eagles-Smith-Williams-Brown-10-0

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

const ws = new WeakSet();
const obj1 = { name: 'first' };
const obj2 = { name: 'second' };
const obj3 = obj1;

ws.add(obj1);
ws.add(obj2);
ws.add(obj3);

console.log(ws.has(obj1));
console.log(ws.has(obj3));
console.log(ws.has({ name: 'first' }));
console.log(ws.size);

Ответ: true true false undefined

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

const person = {
name: 'Alice',
greet() {
return `Hello, I'm ${this.name}`;
},
farewell: () => `Goodbye from ${this.name}`
};

const greetFn = person.greet;
const farewellFn = person.farewell;

console.log(person.greet());
console.log(greetFn());
console.log(farewellFn());


Ответ: Hello, I'm Alice Hello, I'm undefined Goodbye from undefined

JavaScript test | #JavaScript & Max
❗️Что будет на выходе:
const numbers = [1, 2, 3, 4, 5];

const sum = numbers.reduce((acc, curr) => {
setTimeout(() => {
acc += curr;
}, 0);
return acc;
}, 0);

console.log(sum);

Ответ: 0

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

function processData(data) {
try {
if (!data) {
throw new TypeError('Data is required');
}

if (data.status === 'error') {
throw new Error('Invalid status');
}

return data.value.toUpperCase();
} catch (err) {
if (err instanceof TypeError) {
return 'Type Error';
}
return err.message;
}
}

console.log(processData({ status: 'error', value: 'test' }));

Ответ:
Invalid status


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

const target = { a: 1, b: 2 };
const handler = {
get(obj, prop) {
return prop === 'sum' ? obj.a + obj.b : Reflect.get(obj, prop);
},
set(obj, prop, value) {
if (prop === 'a' && value < 0) {
return false;
}
return Reflect.set(obj, prop, value);
}
};

const proxy = new Proxy(target, handler);
proxy.a = -5;
proxy.b = 10;
console.log(`${proxy.a}, ${proxy.b}, ${proxy.sum}`);

Ответ: 1, 10, 11

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

function* gen() {
yield 1;
yield 2;
yield 3;
}

async function asyncFunc() {
for (let value of gen()) {
await new Promise(res => setTimeout(res, 100));
console.log(value);
}
return 'done';
}

const result = asyncFunc();
console.log(result instanceof Promise);


Ответ: true 1 2 3

JavaScript test | #JavaScript & Max
❗️Что будет на выходе:
const obj = {
x: 10,
foo() {
setTimeout(function() {
console.log(this.x);
}, 1000);
}
};
obj.foo();

Ответ: undefined

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

const obj = {};
Object.defineProperty(obj, 'name', {
value: 'Alice',
writable: false,
configurable: false
});

try {
obj.name = 'Bob';
delete obj.name;
console.log(obj.name);
} catch (e) {
console.log('Error:', e.message);
}

Ответ: Alice

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

var arr=[1,2,3,4,5];
console.log(arr.map((prev,curr)=>prev+curr));
console.log(arr.reduce((a,b)=>a+b));
console.log(arr.filter((a,b)=> (a + b) <= 5));


Ответ: [ 1, 3, 5, 7, 9 ]
15
[ 1, 2, 3 ]


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

const arr = [1, 2, 3];
arr[-1] = 10;
console.log(arr.length, arr);


Ответ: 3 [ 1, 2, 3, '-1': 10 ]

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

const team = {
members: ['Alice', 'Bob', 'Charlie'],
[Symbol.iterator]: function*() {
let index = 0;
while(index < this.members.length) {
yield this.members[index++].toUpperCase();
}
}
};

const result = [];
for (const member of team) {
result.push(member);
}

console.log(result.join('-'));

Ответ: ALICE-BOB-CHARLIE

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

const arr = [];
arr.length = 3;
arr[10] = 7;
arr.forEach((el, i) => console.log(i))

Ответ: 3
7
10


JavaScript test | #JavaScript & Max