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 secretKey = Symbol('key');
const secretValue = 'secret';

function Store() {
this[secretKey] = secretValue;
}

Store.prototype.get = function(key) {
return this[key];
};

const store = new Store();
const revealed = store.get(secretKey);
console.log(revealed);


Ответ: secret

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

function fetchData() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Data fetched successfully!');
}, 1000);
});
}

async function getResult() {
const result = await fetchData();
console.log(result);
}

getResult();


Ответ: "Data fetched successfully!"

JavaScript test | ChatGPT | #JavaScript
Работа с асинхронными запросами (AJAX)

Этот код выполняет асинхронный GET-запрос к серверу и обрабатывает ответ в формате JSON.

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

function asyncFunction(value) {
return new Promise(resolve => {
setTimeout(() => {
console.log(value);
resolve(value);
}, 1000);
});
}

(async () => {
const results = await Promise.all([asyncFunction(1), asyncFunction(2), asyncFunction(3)]);
console.log(results);
})();


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

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

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 | ChatGPT | #JavaScript
🧠Что будет на выходе?

console.log('Start');

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

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

function foo() {
console.log('Function call');
}

foo();

console.log('End');


Ответ: "Start" "Function call" "End" "Promise" "Timeout"

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

const data = [
{ id: 1, name: 'Alice', skills: ['JavaScript', 'HTML'] },
{ id: 2, name: 'Bob', skills: ['JavaScript', 'CSS'] },
{ id: 3, name: 'Charlie', skills: ['HTML', 'CSS'] },
];

const result = data.reduce((acc, person) => {
person.skills.forEach(skill => {
acc[skill] = acc[skill] ? acc[skill] + 1 : 1;
});
return acc;
}, {});

console.log(result);


Ответ: { JavaScript: 2, HTML: 2, CSS: 2 }

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

const handler = {
get(target, prop, receiver) {
if (prop === 'secret') {
return Reflect.get(...arguments) + ' exposed';
}
return Reflect.get(...arguments);
}
};

const secretObj = { secret: 'hidden', reveal: 'nothing' };
const proxy = new Proxy(secretObj, handler);

console.log(proxy.secret);


Ответ: hidden exposed
JavaScript test | ChatGPT | #JavaScript
🤬🤬🤬 Война идёт между банками, а страдают обычные люди

Хорошая новость — внимательные клиенты могут оказаться в жирном плюсе:

— Получить 15.000 просто за регистрацию в приложении банка

— Ставка 5% годовых на кредит (да в 2024)

— Кешбэк до 80% на ВСЕ виды товаров

— Вклад под 20% с возможностью снятия наличных


Забить на эти предложения = выстрелить себе в ногу.

Пользуйтесь, пока лавочку не прикрыли: @etogrаbezh
🧠Что будет на выходе?

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

const result = data.flatMap(num => Array.from({ length: num * 2 - 1 }, (_, index) => index % 2 === 0 ? num : index + 1));

console.log(result);


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

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

const data = [
{ id: 1, name: 'Alice', age: 25, gender: 'Female' },
{ id: 2, name: 'Bob', age: 30, gender: 'Male' },
{ id: 3, name: 'Charlie', age: 22, gender: 'Male' },
{ id: 4, name: 'David', age: 35, gender: 'Male' },
];

const result = data
.filter(person => person.gender === 'Male')
.map(person => ({ ...person, isSenior: person.age > 30 }))
.sort((a, b) => a.age - b.age)
.slice(0, 2)
.reduce((acc, person) => {
acc[person.name] = person.isSenior;
return acc;
}, {});

console.log(result);


Ответ: { Bob: false, Charlie: false }

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

function multiply(a, b) {
if (b === 0) {
return 0;
} else if (b > 0) {
return a + multiply(a, b - 1);
} else {
return -multiply(a, -b);
}
}

console.log(multiply(7, 5));


Ответ: 35

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

function* generator() {
yield 1;
yield 2;
}

const gen = generator();
const sym = Symbol('unique');

gen[sym] = function() {
return this.next().value;
};

console.log(gen[sym](), gen[sym](), gen[sym]());


Ответ: 1, 2, undefined

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

function fetchData(url) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (url.startsWith('https://api.example.com')) {
resolve({ data: 'Some data' });
} else {
reject(new Error('Invalid URL'));
}
}, 1000);
});
}

fetchData('https://api.example.com/data')
.then(response => console.log(response.data))
.catch(error => console.error(error));


Ответ: 'Some data'

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

const string = "abacabadabacaba";
const result = string.split("").reduce((acc, val) => {
acc[val] = (acc[val] || 0) + 1;
return acc;
}, {});
console.log(result);


Ответ: { a: 8, b: 4, c: 2, d: 1 }

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

const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Resolved');
reject(new Error('Rejected'));
}, 1000);
});

promise.then(response => console.log(response)).catch(error => console.error(error));


Ответ: 'Resolved'

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

const func = new Function('a', 'b', 'return a + b');
console.log(func(1, 2));


Ответ: 3

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

async function asyncQuiz() {
console.log("Start");

const promise1 = new Promise((resolve) => {
setTimeout(() => resolve("Promise 1"), 1000);
});

const promise2 = new Promise((resolve) => {
setTimeout(() => resolve("Promise 2"), 500);
});

console.log(await promise1);
console.log(await promise2);

console.log("End");
}

asyncQuiz();


Ответ: "Start", "Promise 1", "Promise 2", "End"

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

const string = "Hello, World! How are you?";

const result = string.match(/[aeiou]/g).reduce((acc, char) => {
acc[char] = (acc[char] || 0) + 1;
return acc;
}, {});

console.log(result);


Ответ: { a: 1, e: 2, o: 4, u: 1 }

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

function deepFreeze(obj) {
Object.freeze(obj);
Object.getOwnPropertyNames(obj).forEach(prop => {
if (typeof obj[prop] === 'object' && !Object.isFrozen(obj[prop])) {
deepFreeze(obj[prop]);
}
});
return obj;
}

const data = { a: { b: { c: 1 } } };
const frozenData = deepFreeze(data);

frozenData.a.b.c = 2;

console.log(frozenData.a.b.c);


Ответ: 1

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

function* generator() {
yield 1;
yield* [2, 3];
yield 4;
}

const gen = generator();

const arr = Array.from(gen);
console.log(arr);



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

JavaScript test | ChatGPT | #JavaScript