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

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc
Download Telegram
❗️Что будет на выходе:

class ShoppingCart {
constructor() {
if (ShoppingCart.instance) {
return ShoppingCart.instance;
}

this.items = [];
ShoppingCart.instance = this;
}

addItem(item) {
this.items.push(item);
}

getItems() {
return [...this.items];
}
}

const cart1 = new ShoppingCart();
const cart2 = new ShoppingCart();

cart1.addItem('Book');
cart2.addItem('Laptop');

console.log(cart1.getItems());


Ответ: ['Book', 'Laptop']

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

const obj = {};
Object.defineProperty(obj, 'name', {
value: 'Alice',
writable: false,
configurable: false
});

try {
obj.name = 'Bob';
delete obj.name;
console.log(obj.name);
} catch (e) {
console.log('Error:', e.message);
}

Ответ: Alice

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

const team = {
lead: { name: 'Alice', projects: ['Alpha', 'Beta'] },
dev: { name: 'Bob', projects: ['Gamma'] },
tester: { name: 'Charlie', projects: [] }
};

const {
lead: { projects: [leadProject] },
dev: { projects: [devProject = 'Delta'] },
tester: { projects: [testerProject = 'Epsilon'] }
} = team;

console.log(`${leadProject}-${devProject}-${testerProject}`);


Ответ: Alpha-Gamma-Epsilon

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

const wMap = new WeakMap();

function foo() {
wMap.set(this, 1);
};
const bar = () => wMap.set(this, 2);

bar();
foo();

console.log(wMap.get(this));

Ответ: 1

JavaScript test | #JavaScript
❗️Что будет на выходе:
const asyncFunction = async () => {
const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));

const result = await Promise.race([delay(100), delay(500)]);
return result;
};

asyncFunction().then(value => console.log(value));


Ответ: undefined

JavaScript test | #JavaScript
❗️Что будет на выходе:
const target = { a: 1, b: 2 };
const handler = {
get(obj, prop) {
return prop in obj ? obj[prop] * 2 : 'not found';
},
set(obj, prop, value) {
if (typeof value !== 'number') {
return false;
}
obj[prop] = value + 10;
return true;
}
};

const proxy = new Proxy(target, handler);
proxy.c = '5';
proxy.d = 5;

console.log(JSON.stringify({
a: proxy.a,
b: proxy.b,
c: proxy.c,
d: target.d,
hasC: Reflect.has(target, 'c')
}));


Ответ: {"a": 2, "b": 4, "c": "not found", "d": 15, "hasC": false}

JavaScript test | #JavaScript
❗️Что будет на выходе:
var a = ( function a() {
return '1';
},
function b() {
return 2;
})()
alert(typeof a)

Ответ: number

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

function Foo() {
this.bar = 1;
}

Foo.prototype.bar = 2;

const foo = new Foo();
console.log(foo.bar);


Ответ: 1

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

function curry(fn) {
return function curried(...args) {
if (args.length >= fn.length) {
return fn.apply(this, args);
}
return function(...moreArgs) {
return curried.apply(this, [...args, ...moreArgs]);
};
};
}

const multiply = curry((a, b, c) => a * b * c);
const double = multiply(2);
const result = double(3)(4);

console.log(result);


Ответ: 24

JavaScript test | #JavaScript
❗️Что будет на выходе:
const num = 10;
const add = () => {
console.log(num + num);
};

(function () {
const num = 5;
add();
})();

Ответ: 20

JavaScript test | #JavaScript
❗️Что будет на выходе:
class EventEmitter {
constructor() {
this.events = {};
}

on(event, listener) {
if (!this.events[event]) {
this.events[event] = [];
}
this.events[event].push(listener);
return () => this.off(event, listener);
}

off(event, listener) {
if (!this.events[event]) return;
this.events[event] = this.events[event].filter(l => l !== listener);
}

emit(event, ...args) {
if (!this.events[event]) return false;
this.events[event].forEach(listener => listener(...args));
return true;
}
}

const emitter = new EventEmitter();
const unsubscribe = emitter.on('message', data => console.log(data));
emitter.emit('message', 'Hello');
emitter.emit('message', 'World');
unsubscribe();
emitter.emit('message', 'Ignored');
console.log(emitter.emit('message', 'Still ignored'));

Ответ: Hello World true

JavaScript test | #JavaScript
❗️Что будет на выходе:
const person = {};
person.name.toUpperCase();
console.log(person.name);


Ответ: TypeError: Cannot read property 'toUpperCase' of undefined

JavaScript test | #JavaScript
❗️Что будет на выходе:
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

const result = numbers
.filter(num => num % 2 === 0)
.map(num => num * 2)
.reduce((acc, num, index, array) => {
if (index === array.length - 1) {
return (acc + num) / array.length;
}
return acc + num;
}, 0);

console.log(result);


Ответ: 12

JavaScript test | #JavaScript
❗️Что будет на выходе:
Promise.resolve(1)
.then(r => Promise.reject(r))
.catch(console.log)
.then(() => console.log(2));


Ответ: 1, 2

JavaScript test | #JavaScript
❗️Что будет на выходе:
async function foo() {
console.log('Start');
await Promise.resolve().then(() => {
console.log('Inside Promise');
});
console.log('End');
}

foo();
console.log('Outside');

Ответ: Start, Outside, Inside, Promise, End

JavaScript test | #JavaScript
❗️Что будет на выходе:
var i = 5;

const arr = new Array(5);
arr.forEach(() => i++);

console.log(i);

Ответ: 5

JavaScript test | #JavaScript
❗️Что будет на выходе:
const user = {
details: {
name: 'Alex',
contact: null,
preferences: {
theme: 'dark'
}
},
getInfo() {
return this?.details?.contact?.email ||
this?.details?.preferences?.theme ||
this?.details?.name ||
'Unknown';
}
};

console.log(user.getInfo());

Ответ: dark

JavaScript test | #JavaScript
Forwarded from DevHumor
This media is not supported in your browser
VIEW IN TELEGRAM
Генератор бредовых идей

DevHumor
❗️Что будет на выходе:
const wMap = new WeakMap();

function foo() {
wMap.set(this, 1);
};
const bar = () => wMap.set(this, 2);

bar();
foo();

console.log(wMap.get(this));

Ответ: 1

JavaScript test | #JavaScript