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

console.log(typeof null);
console.log(typeof undefined);
console.log(typeof {});
console.log(typeof []);

Ответ: object, undefined, object, object

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

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

const clothes = [ 'jacket', 't-shirt' ];
clothes.length = 0;
console.log(clothes[0]);

Ответ: undefined

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

const multiplier = 3;

function createCounter() {
let count = 0;
const multiplier = 5;

return function() {
count++;
return count * multiplier;
};
}

const counter = createCounter();
console.log(counter());
console.log(counter());
console.log(multiplier);

Ответ: 5 10 3

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

const a = async () => {
return Promise.reject('rejected');
};

a().catch(error => console.log(error));
console.log('done');

Ответ: 'done', 'rejected'


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

class Subject {
constructor() {
this.observers = [];
}
attach(observer) {
this.observers.push(observer);
}
notify(data) {
this.observers.forEach(obs => obs.update(data));
}
}

const subject = new Subject();
subject.attach({ update: (d) => console.log(d * 2) });
subject.attach({ update: (d) => console.log(d + 5) });
subject.notify(10);

Ответ: true

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

const arr = [1, 2, 3, 4, 5];
const result = arr
.map(x => x * 2)
.filter(x => x > 5)
.reduce((acc, val) => {
return acc + (val % 3 === 0 ? val : 0);
}, 0);

console.log(result);

Ответ: 6

JavaScript test | #JavaScript & Max
This media is not supported in your browser
VIEW IN TELEGRAM
Появился новый провайдер LLM - SaveRouter: лёгкий и выгодный доступ к Fable 5 и Opus 4.8 🧠

Самые современные модели Anthropic стали доступны и без лимитов.

$50 на тестирование — каждому пользователю Telegram Premium при регистрации

Скидка 70% всем, кто зарегистрируется до 23:59 UTC 24.07 (3:00am по Мск)

• Лучший вариант для OpenClaw, Hermes и других AI-агентов
• Совместимость с Anthropic API: Claude Code, Cursor, Cline, aider — подключение за 2 минуты

👉 svrtr.org
❗️Что будет на выходе:

const weakMap = new WeakMap();
const obj1 = {};
const obj2 = { key: 'value' };

weakMap.set(obj1, obj2);

const result = weakMap.get(obj1).key.split('').reverse().join('');

console.log(result);

Ответ: "eulav"


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

const obj = {
name: 'Sarah',
getName() { return this.name; },
getNameArrow: () => this.name
};

const { getName, getNameArrow } = obj;
const boundGetName = obj.getName.bind(obj);

console.log(getName());
console.log(getNameArrow());
console.log(boundGetName());
console.log(obj.getName());
console.log(obj.getNameArrow());

Ответ: undefined undefined Sarah Sarah undefined


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

const weakMap = new WeakMap();
const obj1 = {};
const obj2 = { key: 'value' };

weakMap.set(obj1, obj2);

const result = weakMap.get(obj1).key.split('').reverse().join('');

console.log(result);

Ответ: "eulav"


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

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

const array = Array.from({ length: 5 }, () => Math.random() > 0.5);

console.log(array);

Ответ: An array of 5 random true/false values

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

let obj1 = { name: 'Sarah' };
let obj2 = { name: 'Mike' };
let obj3 = { ref: obj1 };

obj1.circular = obj1;
obj2.partner = obj3;
obj3.partner = obj2;

let weakMap = new WeakMap();
weakMap.set(obj1, 'data1');
weakMap.set(obj2, 'data2');

obj1 = null;
obj2 = null;

console.log(weakMap.has(obj3.ref));
console.log(obj3.partner.name);

Ответ: true Mike

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

const memoryLeak = () => {
const cache = new Map();
const weakCache = new WeakMap();

const objKey = { id: 123 };
const data = { name: 'User data', value: 42 };

cache.set(objKey, data);
weakCache.set(objKey, data);

// Simulate removing reference to key
const result = { map: cache.has(objKey), weakMap: weakCache.has(objKey) };
// objKey = null; // This would be an error, as const can't be reassigned

return result;
};

console.log(memoryLeak());

Ответ: { map: true, weakMap: true }

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

const array = [1, 2, 3, 4, 5];
const result = array.filter(n => n % 2).map(n => n * 2);

console.log(result);

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

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

const target = { name: 'Sarah', age: 25 };

const handler = {
get(obj, prop) {
if (prop in obj) {
return obj[prop];
}
return `Property '${prop}' not found`;
},
set(obj, prop, value) {
obj[prop] = value.toString().toUpperCase();
return true;
}
};

const proxy = new Proxy(target, handler);
proxy.city = 'boston';
console.log(proxy.name);
console.log(proxy.city);
console.log(proxy.country);

Ответ: Sarah BOSTON Property 'country' not found

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

function Vehicle(type) {
this.type = type;
}

Vehicle.prototype.wheels = 4;
Vehicle.prototype.getInfo = function() {
return `${this.type}: ${this.wheels}`;
};

const car = new Vehicle('Car');
const bike = Object.create(car);
bike.type = 'Bike';
bike.wheels = 2;

console.log(car.getInfo() + ' | ' + bike.getInfo());

Ответ: Car: 4 | Bike: 2

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

const a = document.createElement("a");
a.id = "test1";
a.href = "test2";
document.body.appendChild(a);
console.log(window.test1);

Ответ: http://.../test2

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

const getValue = (x) => {
console.log(`Getting: ${x}`);
return x;
};

const obj = { name: null };

const result = obj.name || getValue('default') && getValue('final');
console.log(`Result: ${result}`);

Ответ: Getting: default Getting: final Result: final

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

function createCounter() {
let count = 0;

const counter = {
increment() {
count++;
return count;
},
getCount() {
return count;
}
};

return counter;
}

let c1 = createCounter();
c1.increment();
c1.increment();

let c2 = c1;
c1 = null;

console.log(c2.getCount());

Ответ: 2

JavaScript test | #JavaScript & Max