JavaScript test
9.69K subscribers
3.08K photos
14 videos
4.75K links
Проверка своих знаний по языку JavaScript.

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: telega.in/c/js_test

РКН: clck.ru/3KHeYk
Download Telegram
Forwarded from Русский Уолл-стрит
ЦБ РФ может понизить ключевую ставку до 17% уже к концу этого года. Такой прогноз дал в интервью Reuters первый зампред правления Сбера Александр Ведяхин. Резкого снижения ставки ждать не стоит, ведь, по его словам, есть риск того, что инфляция снова пойдёт вверх.

Александр Ведяхин считает, что снижение ставки с 21 до 20% существенно не влияет на экономику. Скорее, это хороший психологический сигнал и знак возможного возобновления инвестиционного цикла и инвестиционных кредитов. @streetwall
❗️Что будет на выходе:
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);

Ответ: I have been coding in <span>JavaScript</span> for <span>10</span> years

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
❗️Что будет на выходе:
const weakMap = new WeakMap();
const array = [{}, {}];

array.forEach(obj => weakMap.set(obj, obj));
const result = array.map(obj => weakMap.get(obj) === obj);

console.log(result);

Ответ: [true, true]

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

Ответ: 2

JavaScript test | #JavaScript
❗️Что будет на выходе:
const array = Array.from({ length: 5 }, () => Math.random() > 0.5);

console.log(array);


Ответ: An array of 5 random true/false values

JavaScript test | #JavaScript
❗️Что будет на выходе:
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 sym = Symbol('unique');
const obj = {
[sym]: 'symbol value',
a: 1,
b: 2
};

const keys = Object.keys(obj);
const symbols = Object.getOwnPropertySymbols(obj);

console.log(keys.length, symbols.length);


Ответ: 2, 1

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

const result = array.map(num => Promise.resolve(num * 2));

console.log(result);


Ответ: [Promise, Promise, Promise, Promise, Promise]

JavaScript test | #JavaScript
❗️Что будет на выходе:
let x = 5;
let result = typeof (x + "10");

console.log(result);


Ответ: string

JavaScript test | #JavaScript
Маркетинг за 4 дня: бесплатно!

Зарплата начинающего маркетолога от 70 000₽, а стоимость обучения на профессию в онлайн-школах основам от 120 000 до 250 000 рублей.

Сейчас Skillbox дарит мини-курс на 4 дня: попробуйте себя в интернет-маркетинге, SMM, таргетинге и копирайтинге. Только практика, полезные чек-листы и доступ к материалам навсегда.

Переходите по ссылке и забирайте курс по маркетингу. Акция продлится до 19 мая: https://go.avnxt.site/8b2d902d157e1120?erid=2VfnxxcSezk&m=1
❗️Что будет на выходе:
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
❗️Что будет на выходе:
const templateFn = (strings, ...values) => {
return strings.reduce((result, str, i) => {
const value = values[i] !== undefined ?
(typeof values[i] === 'number' ? values[i] * 2 : values[i]) : '';
return result + str + value;
}, '');
};

const num = 5;
const str = 'world';

const result = templateFn`Hello ${str}, ${num} times ${'!'}`;
console.log(result);


Ответ: Hello world, 10 times !

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


Ответ: { timeout: 0, retries: 3, logging: false, debug: true }

JavaScript test | #JavaScript
❗️Что будет на выходе:
let arr = [1];

arr.length = 4;
arr[3] = 2;

for (let i in arr) {
console.log(i);
}


Ответ: 0, 3

JavaScript test | #JavaScript
❗️Что будет на выходе:
function recursiveNQueens(n) {
const board = Array.from({ length: n }, () => Array.from({ length: n }, () => "."));
const solutions = [];
const isSafe = (row, col) => {
for (let i = 0; i < row; i++) {if (board[i][col] === "Q") return false;
const colOffset = row - i;
if (col - colOffset >= 0 && board[i][col - colOffset] === "Q") return false;
if (col + colOffset < n && board[i][col + colOffset] === "Q") return false;
}
return true;
};

const placeQueens = (row) => {
if (row === n) {
solutions.push(board.map(row => row.join("")));
return;
}
for (let col = 0; col < n; col++) {
if (isSafe(row, col)) {
board[row][col] = "Q";
placeQueens(row + 1);
board[row][col] = ".";
}
}
};
placeQueens(0);
return solutions;
}
const result = recursiveNQueens(4);

console.log(result);


Ответ: [[".Q..", "...Q", "Q...", "..Q."], ["..Q.", "Q...", "...Q", ".Q.."]]

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


Ответ: 64

JavaScript test | #JavaScript
Чтобы начать карьеру в анализе данных, нужно выбрать направление. А для этого — как-то отличить друг от друга аналитиков данных, системных, продуктовых и бизнес-аналитиков, инженеров данных и специалистов по Data Science.

Яндекс Практикум запускает бесплатный курс, который поможет это сделать. Расскажем, чем занимаются разные аналитики, сколько они зарабатывают и как стать одним или одной из них.

Курс будет полезен, если
→ у вас нет опыта, но хочется работать в анализе данных;
→ хотите сменить профессию, но не знаете, с чего начать.

После курса можно будет пройти бесплатную вводную часть о профессии, которая понравилась. Там вы решите первые практические задачи настоящих аналитиков.

Начините путь в анализ данных вместе с Практикумом
❗️Что будет на выходе:
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