JavaScript test
10.1K subscribers
3.05K photos
7 videos
4.47K links
Проверка своих знаний по языку JavaScript.

Ссылка: @Portal_v_IT

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

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

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

function* infiniteGenerator() {
let i = 0;
while (true) {
yield i++;
}
}

const weakMap = new WeakMap();
const gen = infiniteGenerator();

weakMap.set(gen, gen.next().value);

const result = weakMap.get(gen) + gen.next().value;

console.log(result);

Ответ: 1


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

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

console.log(person.greet());

Ответ: Generic sound


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

function* createCounter() {
let count = 0;
while (true) {
const reset = yield ++count;
if (reset) {
count = 0;
}
}
}

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

Ответ: 1 2 1 2


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

const cache = new WeakMap();

const user1 = { name: 'Alice' };
const user2 = { name: 'Bob' };

cache.set(user1, { lastLogin: 'yesterday' });
cache.set(user2, { lastLogin: 'today' });

const result = [];
result.push(cache.has(user1));
result.push(cache.get(user2).lastLogin);

let user3 = { name: 'Charlie' };
cache.set(user3, { lastLogin: 'now' });
result.push(cache.has(user3));

user3 = null; // Removing the reference
// Garbage collector might run here in real situations

const user4 = { name: 'Charlie' }; // Same name, different object
result.push(cache.has(user4));

console.log(result);

Ответ: [true, 'today', true, false]


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

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

const getName = obj.getName;
const getNameArrow = obj.getNameArrow;

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

Ответ: Sarah, undefined, undefined, undefined


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

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

console.log(person.greet());

Ответ: Generic sound


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

function a() {
console.log(arguments[0]);
}

a([1]);

Ответ: [1]

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

const handler = {
get(target, prop) {
if (prop in target) {
return target[prop] * 2;
} else {
return `Property ${prop} not found`;
}
},
set(target, prop, value) {
if (typeof value === 'number') {
target[prop] = Math.round(value);
return true;
}
return false;
}
};

const obj = { a: 5, b: 10 };
const proxy = new Proxy(obj, handler);

proxy.c = 7.8;
proxy.d = "hello";

console.log(obj.c, proxy.a, proxy.x);

Ответ: 8 10 Property x not found

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

const numbers = [0,0,0];

let i = 0;
const result = numbers.reduce((acc, _) => {
return ++acc;
}, i);

console.log(i, result);

Ответ: 0 3


JavaScript test | #JavaScript & Max