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

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc
Download Telegram
❗️Что будет на выходе:
if (false) {
function foo() {
return 1;
}
}

console.log(foo());


Ответ: TypeError: foo is not a function

JavaScript test | #JavaScript
❗️Что будет на выходе:
function main({ x, y } = { x: 1, y: 2 }) {
console.log(x, y);
}

main({ x: 5 });


Ответ: 5, undefined

JavaScript test | #JavaScript
❗️Что будет на выходе:
const obj = { name: 'Alice', age: 30 };  
const handler = {
get(target, prop) {
return prop in target ? target[prop] : `Property '${prop}' doesn't exist`;
}
};

const proxy = new Proxy(obj, handler);

const descriptors = Object.getOwnPropertyDescriptors(obj);
Reflect.defineProperty(obj, 'city', {
value: 'New York',
enumerable: false
});

console.log(proxy.city, proxy.country);


Ответ: New York Property 'country' doesn't exist

JavaScript test | #JavaScript
❗️Что будет на выходе:
let obj = { a: 1 };
let proto = { b: 2 };

Object.setPrototypeOf(obj, proto);

for (let key in obj) {
console.log(key);
}


Ответ: a, b

JavaScript test | #JavaScript
❗️Что будет на выходе:
function asyncQuiz() {
return new Promise((resolve) => {
setTimeout(() => resolve('Hello'), 1000);
});
}

async function runAsyncQuiz() {
const result = await asyncQuiz();
console.log(result);
}

runAsyncQuiz();
console.log('World');


Ответ: World Hello

JavaScript test | #JavaScript
❗️Что будет на выходе:
const text = 'Today is 2023-12-31 and tomorrow is 2024-01-01';
const dateRegex = /(\d{4})-(\d{2})-(\d{2})/g;

let result = '';
let match;

while ((match = dateRegex.exec(text)) !== null) {
const [fullMatch, year, month, day] = match;
result += `${day}/${month}/${year.slice(2)} `;
}

console.log(result.trim());


Ответ: 31/12/23 01/01/24

JavaScript test | #JavaScript
❗️Что будет на выходе:
function tag(strings, ...values) {
return strings.reduce((acc, str, i) => {
return acc + str + (values[i] ? values[i].toUpperCase() : '');
}, '');
}

const first = "hello";
const second = "world";

const result = tag`${first} and ${second} are great!`;

console.log(result);

Ответ: HELLO and WORLD are great!

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

Ответ: Error

JavaScript test | #JavaScript
❗️Что будет на выходе:
function* counter() {
let count = 1;
while (true) {
const reset = yield count++;
if (reset) {
count = 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 obj = Object.freeze({
a: [1, 2, 3],
b: {
c: 4
}
});

obj.a.push(4);
obj.b.c = 5;

console.log(obj.a);
console.log(obj.b.c);

Ответ: [1, 2, 3, 4], 5

JavaScript test | #JavaScript
❗️Что будет на выходе:
function* alternatingGenerator() {
yield 1;
yield 2;
yield 3;
}

const gen = alternatingGenerator();
const result = [gen.next().value, gen.next().value, gen.next().value].reduce((acc, curr) => acc + curr, 0);

console.log(result);

Ответ: 6

JavaScript test | #JavaScript
❗️Что будет на выходе:
function outer() {
console.log(typeof inner);
console.log(typeof inner2);

var inner = function() {
return 'Inside inner';
};

function inner2() {
return 'Inside inner2';
}

console.log(typeof inner);
console.log(typeof inner2);
}

outer();

Ответ: undefined function function function

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, curr, idx, arr) => {
if (idx === arr.length - 1) {
return (acc + curr) / arr.length;
}
return acc + curr;
}, 0);

console.log(result);

Ответ: 12

JavaScript test | #JavaScript
❗️Что будет на выходе:
const obj = {
x: 10,
foo() {
setTimeout(function() {
console.log(this.x);
}, 1000);
}
};
obj.foo();

Ответ: undefined

JavaScript test | #JavaScript
❗️Что будет на выходе:
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
❗️Что будет на выходе:
function processData({ a = 10, b = 20 } = { a: 30 }) {
console.log(a, b);
}

processData({ a: 5 });
processData();

Ответ: 5 20 30 20

JavaScript test | #JavaScript
❗️Что будет на выходе:
const target = {
secret: "hidden",
reveal: "nothing"
};

const handler = {
get: function(obj, prop, receiver) {
if (prop === "secret") {
return "revealed";
}
return Reflect.get(...arguments);
}
};

const proxy = new Proxy(target, handler);

with (proxy) {
console.log(secret);
console.log(reveal);
}

Ответ: revealed nothing

JavaScript test | #JavaScript
❗️Что будет на выходе:
const items = ['apple', 'banana', 'cherry', 'date'];  

const result = items
.map(item => item.toUpperCase())
.filter(item => item.length > 5)
.reduce((acc, item, index) => {
return acc + (index === 0 ? '' : '-') + item.slice(0, 3);
}, '');

console.log(result);

Ответ: BAN-CHE

JavaScript test | #JavaScript
❗️Что будет на выходе:
const array = [1, 2, 3];
array[-1] = 0;

console.log(array.length);


Ответ: 3

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

const result = numbers
.filter(n => n % 2 === 0)
.map(n => n * 2)
.reduce((acc, curr, idx, arr) => {
if (idx === arr.length - 1) {
return (acc + curr) / arr.length;
}
return acc + curr;
}, 0);

console.log(result);


Ответ: 12

JavaScript test | #JavaScript