JavaScript test
10.7K subscribers
3.03K photos
6 videos
4.11K links
Проверка своих знаний по языку JavaScript.

Ссылка: @Portal_v_IT

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

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

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

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

async function processData() {
console.log('start');
const result = fetchData();
console.log(typeof result);
const data = await fetchData();
console.log(typeof data);
console.log('end');
}

processData();

Ответ: start object string end

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

let x = 5;

function foo() {
console.log(x);
let x = 10;
console.log(x);
}

foo();

Ответ: ReferenceError: Cannot access 'x' before initialization

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

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

const obj = {};
let value = 0;

Object.defineProperty(obj, 'prop', {
get() {
return value;
},
set(newValue) {
value = newValue + 1;
},
configurable: true,
enumerable: true
});

obj.prop = 10;
console.log(obj.prop);

Ответ: 11

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

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

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

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

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

const map = new WeakMap();

let obj1 = { name: 'user1' };
let obj2 = { name: 'user2' };

map.set(obj1, 'data for user1');
map.set(obj2, 'data for user2');

console.log(map.has(obj1));
obj1 = null;

console.log(map.has(obj1));
console.log(map.get(obj2));

Ответ: true, false, data, for user2

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

function Person(name) {
this.name = name;
this.sayName = () => console.log(this.name);
}

const person1 = new Person('David');
const person2 = { name: 'Not David', sayName: person1.sayName };

person2.sayName();

Ответ: David

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

const user = {
name: 'Sarah',
age: 28,
getName() {
return this.name;
}
};

const { getName } = user;
const boundGetName = user.getName.bind(user);

console.log(getName());
console.log(boundGetName());
console.log(user.getName());

Ответ: undefined Sarah Sarah

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

function* outer() {
yield 1;
yield* inner();
yield 4;
}

function* inner() {
yield 2;
yield 3;
}

const gen = outer();
console.log(gen.next().value);
console.log(gen.next().value);
console.log(gen.next().value);
console.log(gen.next().value);

Ответ: 1 2 3 4
JavaScript test | #JavaScript
❗️Что будет на выходе:

function* counter() {
let i = 1;
while (true) {
const reset = yield i++;
if (reset) {
i = 1;
}
}
}

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

Ответ: 1, 2, 1, 2

JavaScript test | #JavaScript
❗️Что будет на выходе:
const config = { api: 'v1', timeout: 5000 };
Object.seal(config);

const settings = { theme: 'dark', lang: 'en' };
Object.freeze(settings);

config.api = 'v2';
config.retries = 3;
settings.theme = 'light';
settings.debug = true;

console.log(config.api);
console.log(config.retries);
console.log(settings.theme);
console.log(settings.debug);

Ответ: v2 undefined dark undefined

JavaScript test | #JavaScript
❗️Что будет на выходе:
const map = new Map();
const key1 = {};
const key2 = key1;

map.set(key1, "Value for key1");
map.set(key2, "Value for key2");

console.log(map.get(key2));
console.log(map.get(key1));

Ответ:
Value for key2
Value for key2


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

const defaultSettings = {
theme: 'light',
notifications: true,
location: 'USA'
};

const userSettings = {
theme: 'dark',
location: 'Canada'
};

const finalSettings = {
...defaultSettings,
...userSettings
};

console.log(finalSettings);


Ответ: { theme: 'dark', notifications: true, location: 'Canada' }

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

const obj = { a: 1, b: 2, c: 3 };
const result = Object.values(obj).reduce((acc, curr) => acc * curr, 1);
console.log(result);

Ответ: 6

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

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

console.log(person.greet());

Ответ: Hello, John

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

console.log('1');

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

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

queueMicrotask(() => console.log('4'));

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

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

console.log('8');

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

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

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

console.log(result);

Ответ: 2, 4, 6, 8, 10, 12

JavaScript test | #JavaScript