❗️Что будет на выходе:
Ответ:
HELLO | dlroW?
JavaScript test | #JavaScript & Max
const str = " Hello, World! ";
const result = str
.trim()
.split(", ")
.map((word, i) => {
return i === 0
? word.toUpperCase()
: word.replace(/!$/, "").split("").reverse().join("") + "?";
})
.join(" | ");
const [first, ...rest] = result.split(" | ");
const final = `${first} | ${rest.join(" & ")}`;
console.log(final);
Ответ:
❗️Что будет на выходе:
Ответ:
A D B C
JavaScript test | #JavaScript & Max
const p1 = new Promise((resolve) => {
console.log("A");
resolve("B");
});
const p2 = p1.then((val) => {
console.log(val);
return "C";
});
p2.then((val) => {
console.log(val);
});
console.log("D");
Ответ:
❗️Что будет на выходе:
Ответ:5 20 30 20
JavaScript test | #JavaScript & Max
function processData({ a = 10, b = 20 } = { a: 30 }) {
console.log(a, b);
}
processData({ a: 5 });
processData();Ответ:
❗️Что будет на выходе:
Ответ:I have been coding in <span>JavaScript</span> for <span>10</span> years
JavaScript test | #JavaScript & Max
function highlight(strings, ...values) {
return strings.reduce((result, str, i) => {
const value = values[i] ? `<span>${values[i]}</span>` : '';
return result + str + value;
}, '');
}
const language = 'JavaScript';
const years = 10;
const result = highlight`I have been coding in ${language} for ${years} years`;
console.log(result);
Ответ:
JavaScript test | #JavaScript & Max
❗️Что будет на выходе:
Ответ:[true, 5, true, 'undefined']
JavaScript test | #JavaScript & Max
const user = { name: 'Alice' };
const ratings = new WeakMap();
ratings.set(user, 5);
const result = [];
result.push(ratings.has(user));
result.push(ratings.get(user));
// Create a reference-free object
let tempUser = { name: 'Bob' };
ratings.set(tempUser, 10);
result.push(ratings.has(tempUser));
// Remove the reference
tempUser = null;
// Try to iterate through WeakMap
result.push(typeof ratings[Symbol.iterator]);
console.log(result);Ответ:
JavaScript test | #JavaScript & Max
❗️Что будет на выходе:
Ответ:1, 1, 2, 2
JavaScript test | #JavaScript & Max
function createCounter() {
let count = 0;
return {
increment() {
count++;
return count;
},
getCount() {
return count;
}
};
}
const counter = createCounter();
console.log(counter.increment());
console.log(counter.getCount());
console.log(counter.increment());
console.log(counter.getCount());
Ответ:
JavaScript test | #JavaScript & Max
❗️Что будет на выходе:
Ответ:6 5 -> 8 -> 6
JavaScript test | #JavaScript & Max
const counter = (function () {
let count = 0;
const history = [];
return {
increment(step = 1) {
count += step;
history.push(count);
return this;
},
decrement(step = 1) {
count -= step;
history.push(count);
return this;
},
getHistory: () => history,
getCount: () => count,
};
})();
counter.increment(5).increment(3).decrement(2);
console.log(counter.getCount(), counter.getHistory().join(" -> "));
Ответ:
JavaScript test | #JavaScript & Max
❗️Что будет на выходе:
Ответ:{ status: 'Range Error', message: 'Amount must be positive' }
JavaScript test | #JavaScript & Max
function processTransaction(amount) {
try {
if (typeof amount !== 'number') {
throw new TypeError('Amount must be a number');
}
if (amount <= 0) {
throw new RangeError('Amount must be positive');
}
return 'Transaction processed';
} catch (error) {
if (error instanceof TypeError) {
return { status: 'Type Error', message: error.message };
} else if (error instanceof RangeError) {
return { status: 'Range Error', message: error.message };
}
return { status: 'Unknown Error', message: error.message };
}
}
console.log(processTransaction(-50));
Ответ:
JavaScript test | #JavaScript & Max
❗️Что будет на выходе?
Ответ:0 2 1 2
JavaScript test | #JavaScript & Max
function* counter() {
let i = 0;
while (true) {
const direction = yield i;
if (direction === 'up') i += 2;
else if (direction === 'down') i -= 1;
else i += 1;
}
}
const count = counter();
console.log(count.next().value);
console.log(count.next('up').value);
console.log(count.next('down').value);
console.log(count.next().value);Ответ:
JavaScript test | #JavaScript & Max
❗️Что будет на выходе:
Ответ:64
JavaScript test | #JavaScript & Max
const createMathOps = (base) => {
return {
add: (x) => base + x,
multiply: (x) => base * x
};
};
const createAdvancedMathOps = (base) => {
const basicOps = createMathOps(base);
return {
...basicOps,
square: () => basicOps.multiply(base),
addThenSquare: (x) => {
const added = basicOps.add(x);
return added * added;
}
};
};
const calculator = createAdvancedMathOps(5);
console.log(calculator.addThenSquare(3));
Ответ:
JavaScript test | #JavaScript & Max
❗️Что будет на выходе:
Ответ:120 204 52.25
JavaScript test | #JavaScript & Max
const partial = (fn, ...presetArgs) => {
return function partiallyApplied(...laterArgs) {
return fn(...presetArgs, ...laterArgs);
};
};
const calculateTax = (taxRate, discount, price) => {
const discounted = price - (price * discount) / 100;
return parseFloat((discounted + (discounted * taxRate) / 100).toFixed(2));
};
const withVAT = partial(calculateTax, 20);
const withVATandDiscount = partial(withVAT, 15);
console.log(withVAT(0, 100));
console.log(withVATandDiscount(200));
console.log(partial(calculateTax, 10, 5)(50));
Ответ:
JavaScript test | #JavaScript & Max
❗️Что будет на выходе:
Ответ:{ timeout: 0, retries: 3, logging: false, debug: true }
JavaScript test | #JavaScript & Max
function processConfig(config) {
const settings = {
timeout: config.timeout ?? 1000,
retries: config.retries ?? 3,
logging: config.logging ?? false,
debug: config.debug || true
};
return settings;
}
const userConfig = {
timeout: 0,
retries: null,
logging: false,
debug: false
};
console.log(processConfig(userConfig));
Ответ:
JavaScript test | #JavaScript & Max
❗️Что будет на выходе:
Ответ:['Alice', undefined, true, undefined]
JavaScript test | #JavaScript & Max
const user = {
profile: {
name: 'Alice',
social: null,
getDetails() {
return { verified: true };
}
}
};
const result = [
user?.profile?.name,
user?.profile?.social?.handle,
user.profile.getDetails?.()?.verified,
user?.nonExistent?.property
];
console.log(result);
Ответ:
JavaScript test | #JavaScript & Max
❗️Что будет на выходе:
Ответ:Hello, I'm Alice Hello, I'm undefined Goodbye from undefined
JavaScript test | #JavaScript & Max
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());
Ответ:
JavaScript test | #JavaScript & Max
❗️Что будет на выходе:
Ответ:A G C E B F D
JavaScript test | #JavaScript & Max
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();
Ответ:
JavaScript test | #JavaScript & Max
❗️Что будет на выходе:
Ответ:{ timeout: 0, retries: 3, logging: false, debug: true }
JavaScript test | #JavaScript & Max
function processConfig(config) {
const settings = {
timeout: config.timeout ?? 1000,
retries: config.retries ?? 3,
logging: config.logging ?? false,
debug: config.debug || true
};
return settings;
}
const userConfig = {
timeout: 0,
retries: null,
logging: false,
debug: false
};
console.log(processConfig(userConfig));
Ответ:
JavaScript test | #JavaScript & Max
❗️Что будет на выходе:
Ответ:
Invalid status
JavaScript test | #JavaScript & Max
function processData(data) {
try {
if (!data) {
throw new TypeError('Data is required');
}
if (data.status === 'error') {
throw new Error('Invalid status');
}
return data.value.toUpperCase();
} catch (err) {
if (err instanceof TypeError) {
return 'Type Error';
}
return err.message;
}
}
console.log(processData({ status: 'error', value: 'test' }));Ответ:
❗️Что будет на выходе:
Ответ:{ id: 42, name: 'Item', count: 3 }
JavaScript test | #JavaScript & Max
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');Ответ:
JavaScript test | #JavaScript & Max
❗️Что будет на выходе:
Ответ:string
JavaScript test | #JavaScript & Max
let x = 5;
let result = typeof (x + "10");
console.log(result);
Ответ:
JavaScript test | #JavaScript & Max
❗️Что будет на выходе:
Ответ:2
JavaScript test | #JavaScript & Max
function createCounter() {
let count = 0;
return {
increment() {
count++;
return count;
},
decrement() {
count--;
return count;
},
getValue() {
return count;
}
};
}
const counter1 = createCounter();
const counter2 = createCounter();
counter1.increment();
counter1.increment();
counter2.increment();
counter1.decrement();
console.log(counter1.getValue() + counter2.getValue());
Ответ:
JavaScript test | #JavaScript & Max
❗️Что будет на выходе:
Ответ:I have been coding in <span>JavaScript</span> for <span>10</span> years
JavaScript test | #JavaScript & Max
function highlight(strings, ...values) {
return strings.reduce((result, str, i) => {
const value = values[i] ? `<span>${values[i]}</span>` : '';
return result + str + value;
}, '');
}
const language = 'JavaScript';
const years = 10;
const result = highlight`I have been coding in ${language} for ${years} years`;
console.log(result);
Ответ:
JavaScript test | #JavaScript & Max