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

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc
Download Telegram
❗️Что будет на выходе:
function createCounter() {
let count = 0;
return {
increment: () => ++count,
getCount: () => count
};
}

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

const counter = createCounter();
const double = x => x * 2;
const addOne = x => x + 1;

const incrementAndProcess = compose(double, addOne, counter.increment);

counter.increment();
const result = incrementAndProcess();
console.log(result);

Ответ: 6

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

const handler = {
get(target, prop, receiver) {
if (prop === 'secret') {
return Reflect.get(...arguments) + ' exposed';
}
return Reflect.get(...arguments);
}
};

const secretObj = { secret: 'hidden', reveal: 'nothing' };
const proxy = new Proxy(secretObj, handler);

console.log(proxy.secret);


Ответ: hidden exposed

JavaScript test | #JavaScript
❗️Что будет на выходе:
function recursiveReverseString(str) {
return str === "" ? str : recursiveReverseString(str.substr(1)) + str[0];
}

const result = recursiveReverseString("hello");

console.log(result);


Ответ: "olleh"

JavaScript test | #JavaScript
❗️Что будет на выходе:
const products = [
{ id: 1, name: 'Laptop', price: 1200, category: 'Electronics' },
{ id: 2, name: 'Headphones', price: 100, category: 'Electronics' },
{ id: 3, name: 'Book', price: 15, category: 'Books' },
{ id: 4, name: 'Shirt', price: 25, category: 'Clothing' },
{ id: 5, name: 'Coffee Mug', price: 10, category: 'Kitchen' }
];

const result = products
.filter(p => p.price > 20)
.map(p => ({ name: p.name, value: p.price * 0.9 }))
.reduce((acc, item) => {
acc.names.push(item.name);
acc.total += item.value;
return acc;
}, { names: [], total: 0 });

console.log(result);


Ответ: { names: ['Laptop', 'Headphones', 'Shirt'], total: 1192.5 }

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

const x = [1, 2, 3];
const y = x;
y.push(4);
console.log(x);


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

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

const person = {
name: 'Alice',
greet() {
return `Hello, I'm ${this.name}`;
},
farewell: () => `Goodbye from ${this.name}`
};

const greetFn = person.greet;
const farewellFn = person.farewell;

console.log(person.greet());
console.log(greetFn());
console.log(farewellFn());


Ответ: Hello, I'm Alice Hello, I'm undefined Goodbye from undefined

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

function task1() {
console.log('A');
setTimeout(() => console.log('B'), 0);
Promise.resolve().then(() => console.log('C'));
Promise.resolve().then(() => setTimeout(() => console.log('D'), 0));
Promise.resolve().then(() => console.log('E'));
setTimeout(() => console.log('F'), 0);
console.log('G');
}

task1();

Ответ: A G C E B F D

JavaScript test | #JavaScript
❗️Что будет на выходе:
const words = ['a', 'b', 'c'];
const result = words.concat(1, 2, 3);
console.log(result);

Ответ: ['a', 'b', 'c', 1, 2, 3]

JavaScript test | #JavaScript
❗️Что будет на выходе:
let elf = 'Estel';
function lapland (params) { console.log(elf);
let elf = 'Arwen';
}
lapland();


Ответ: ReferenceError

JavaScript test | #JavaScript
❗️Что будет на выходе:
function* fibonacci() {
let [a, b] = [0, 1];
while (true) {
yield a;
[a, b] = [b, a + b];
}
}

const fib = fibonacci();

const result = [];
for (let i = 0; i < 4; i++) {
result.push(fib.next().value);
}

const sum = result.reduce((total, num) => total + num, 0);
console.log(sum);

Ответ: 4

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

const date = new Date('2023-05-15T12:30:00Z');  // A specific UTC date

const formatter = new Intl.DateTimeFormat('en-US', {
year: 'numeric',
month: 'long',
day: 'numeric',
hour: '2-digit',
minute: '2-digit',
timeZone: 'America/New_York'
});

const parts = formatter.formatToParts(date);
const month = parts.find(part => part.type === 'month').value;
const day = parts.find(part => part.type === 'day').value;
const hour = parts.find(part => part.type === 'hour').value;

console.log(`${month} ${day}, at ${hour}`);

Ответ: May 15, at 08

JavaScript test | #JavaScript
❗️Что будет на выходе:
const obj = { a: 1, b: 2, c: 3 };
let result = "";
for (const [key, value] of Object.entries(obj)) {
result += key + value;
}
console.log(result);


Ответ: a1b2c3

JavaScript test | #JavaScript
❗️Что будет на выходе:
console.log('Start');
setTimeout(() => console.log('Timeout 1'), 0);
setTimeout(() => console.log('Timeout 2'), 0);
console.log('End');


Ответ: "Start" "End" "Timeout 1" "Timeout 2"

JavaScript test | #JavaScript
❗️Что будет на выходе:
function processData(input) {
try {
if (typeof input !== 'string') {
throw new TypeError('Input must be a string');
}

if (input.length === 0) {
throw new Error('Input cannot be empty');
}

return input.toUpperCase();
} catch (error) {
if (error instanceof TypeError) {
return `Type error: ${error.message}`;
}
return `Error: ${error.message}`;
}
}

console.log(processData(''));


Ответ: Error: Input cannot be empty

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

function recursivePalindromeCheck(str) {
if (str.length <= 1) {
return true;
}

return str[0] === str[str.length - 1] && recursivePalindromeCheck(str.slice(1, -1));
}

const result = recursivePalindromeCheck("radar");

console.log(result);


Ответ: true

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

const user = {
name: 'Alice',
age: 30
};

const handler = {
get(target, prop) {
if (prop in target) {
return target[prop];
}
return `Property '${prop}' doesn't exist`;
},
set(target, prop, value) {
if (prop === 'age' && typeof value !== 'number') {
console.log(`Error: ${value} is not a valid age`);
return false;
}
target[prop] = value;
return true;
}
};

const userProxy = new Proxy(user, handler);
userProxy.age = '31';
userProxy.job = 'Developer';

console.log(userProxy.job);


Ответ: Error: 31 is not a valid age Developer

JavaScript test | #JavaScript
❗️Что будет на выходе:
const original = Object.freeze({ a: [1, 2, 3] });
const copy = { ...original };

copy.a.push(4);

console.log(original.a);
console.log(copy.a);

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

JavaScript test | #JavaScript
❗️Что будет на выходе:
function process(data) {
try {
if (!data) {
throw new TypeError('No data provided');
}

if (Array.isArray(data)) {
return data.map(item => item * 2);
}

if (typeof data === 'object') {
return Object.keys(data);
}

return data.toString();
} catch (error) {
if (error instanceof TypeError) {
return 'Type error occurred';
}
return 'Unknown error';
}
}

console.log(process(null));

Ответ: Type error occured

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

Ответ: number

JavaScript test | #JavaScript