JavaScript test
9.56K subscribers
3.13K photos
17 videos
4.83K links
Javascript и все что с ним связано

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc
Download Telegram
Forwarded from The Экономист
⚡️Дарим сразу три новеньких iPhone 16 за подписку!

Для участия в розыгрыше нужно:
1. Быть подписанным на The Экономист, Доллар по тридцать и Чё по трендам?
2. Нажать «Участвую!» под этим постом

Бот случайным образом выберет победителей 2 июня в 18:00. Айфоны за свой счёт застрахуем и отправим в любую точку мира. Всем удачи!
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Что будет на выходе:

const target = { a: 1, b: 2 };
const handler = {
get(obj, prop) {
return prop in obj ? obj[prop] * 2 : 'Not found';
}
};

const proxy = new Proxy(target, handler);

// Add property to original object
target.c = 3;

// Modify existing property directly on proxy
proxy.a = 10;

// Use Reflect.get instead of direct property access
const result = Reflect.get(proxy, 'd', { custom: true });

console.log(proxy.a, proxy.b, proxy.c, result);


Ответ: 20 4 6 Not found

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

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

function* generator2() {
yield* generator1();
yield 3;
}

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


Ответ: 1, 2, 3

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

function analyze(...items) {
const [first, ...rest] = items;
const { length } = [...rest, 'bonus'];
const result = {
...first,
count: length,
};

console.log(result);
}

analyze({ id: 42, name: 'Item' }, 'a', 'b');


Ответ: { id: 42, name: 'Item', count: 3 }

JavaScript test | #JavaScript
The Экономист
⚡️Дарим сразу три новеньких iPhone 16 за подписку! Для участия в розыгрыше нужно: 1. Быть подписанным на The Экономист, Доллар по тридцать и Чё по трендам? 2. Нажать «Участвую!» под этим постом Бот случайным образом выберет победителей 2 июня в 18:00. Айфоны…
⚡️Совсем скоро трое из вас получат по новому iPhone 16!

Чтобы не упустить свой шанс, подпишитесь на @economica, @ruble30 и @trendswhat и нажмите «Участвую!» под этим постом, если ещё этого не сделали. Результаты уже 2 июня в 18:00!
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Что будет на выходе:

const user = { id: 1, name: 'Alice' };
const userData = new WeakMap();

userData.set(user, { lastLogin: '2023-01-01' });
const clone = { ...user };

const originalData = userData.get(user);
const cloneData = userData.get(clone);

console.log(originalData, cloneData);


Ответ: { lastLogin: '2023-01-01' } undefined

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

function mystery() {
try {
throw new Error('Oops');
return 'A';
} catch (err) {
return 'B';
} finally {
return 'C';
}
}

function wrapper() {
try {
return mystery();
} finally {
console.log('D');
}
}

console.log(wrapper());


Ответ: D C

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

function compose(...funcs) {
return function(x) {
return funcs.reduceRight((acc, fn) => fn(acc), x);
};
}

const add10 = x => x + 10;
const multiply2 = x => x * 2;
const toString = x => `Result: ${x}`;

const composed = compose(toString, multiply2, add10);
console.log(composed(5));


Ответ: Resuil: 30

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

function Person() {}

var person = new Person();

console.log(person instanceof Person);
console.log(person instanceof Object);


Ответ: true true

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

var foo = {};
var bar = Object.create(foo);

foo.a = 1;

console.log(bar.a);


Ответ: 1

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

try {
try {
// Creating a custom error type
class CustomError extends Error {
constructor(message) {
super(message);
this.name = "CustomError";
}
}

const fn = () => {
throw new CustomError("Something went wrong");
};

try {
fn();
} catch (e) {
throw new TypeError("Type error occurred");
}
} catch (e) {
console.log(e instanceof Error, e.name, e instanceof TypeError);
}
} catch (e) {
console.log("Outer catch", e.message);
}


Ответ: true 'TypeError' true

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

console.log(1 + 2 + '3' - 4 + 5);


Ответ: 34

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

const createAsyncFunction = (ms, result) => async () => {

await new Promise(resolve => setTimeout(resolve, ms));
return result;

18
[

createAsyncFunction(1000, "A"),

const asyncFunctions

(
createAsyncFunction(500, "B"),
createAsyncFunction(2000, "C"),

Ig

Promise. race(asyncFunctions.map( func =>
func())).then(result => console.log(result));


Ответ: "B"

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

let obj = { a: 1 };
Object.freeze(obj);

console.log(Object.isFrozen(obj));
console.log(obj.a = 2);
console.log(obj.a);


Ответ: true, 2, 1

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

function Animal() {}

function Dog() {}

Dog.prototype = Object.create(Animal.prototype);

const rover = new Dog();

console.log(rover.constructor === Animal);


Ответ: true

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

const users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' }
];

const userScores = new WeakMap();

// Set scores for users
userScores.set(users[0], 95);
userScores.set(users[1], 80);

// Remove reference to Bob
users[1] = null;

let sum = 0;
for (const user of users) {
if (user && userScores.has(user)) {
sum += userScores.get(user);
}
}

console.log(sum);


Ответ: 95

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

const promise = new Promise((resolve, reject) => {
setTimeout(() => resolve(3), 1000);
});

promise
.then(result => {
console.log(result);
return result * 2;
})
.then(result => {
console.log(result);
return new Promise(resolve => setTimeout(() => resolve(result * 3), 1000));
})
.then(result => {
console.log(result);
});


Ответ: 3, 6, 18

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

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