JavaScript test
10.1K subscribers
3.05K photos
6 videos
4.44K links
Проверка своих знаний по языку JavaScript.

Ссылка: @Portal_v_IT

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

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

РКН: clck.ru/3KHeYk
Download Telegram
🎥 Первый в мире полнометражный фильм, полностью созданный ИИ
по поэме Виктора Слипенчука — “Чингис-Хан”
🔗 Смотреть трейлер

🧠 Проект реализован в новом продюсерском центре ZEPHYR NEYRO — запуском занимается Кирилл Калашников, первый продюсер Литл Биг, ВладА4, Джарахова, Ивана Гая, Марьяны Ро и других топовых блогеров.

За 2 месяца команда из:

10 промпт-инженеров
2 ЛОР-специалистов
1 режиссёра
1 монтажёра
и стека из 5 нейросетей — собрала 1 час 1 минуту полноценного кино.


📅 Через 3 дня — релиз первой части.
Подписывайся, чтобы быть в числе первых, кто увидит, как ИИ ломает старую систему:
👉 Зефир Нейро
❗️Что будет на выходе:
function Vehicle(type) {
this.type = type;
}

Vehicle.prototype.getType = function() {
return this.type;
};

function Car(make) {
this.make = make;
}

Car.prototype = Object.create(Vehicle.prototype);
Car.prototype.constructor = Car;

const myCar = new Car('Tesla');
myCar.type = 'electric';

console.log(myCar.getType(), myCar instanceof Vehicle, myCar.constructor.name);


Ответ: electric true Car

JavaScript test | #JavaScript
❗️Что будет на выходе:
const weakMap = new WeakMap();
const arr = [1, 2, 4, 8];
const objs = arr.map(n => ({ n }));

objs.forEach((obj, index) => weakMap.set(obj, arr.slice(0, index + 2)));

const result = objs.map(obj => weakMap.get(obj).reduce((acc, num) => acc + num, 0));

console.log(result);


Ответ: [ 3, 7, 15, 15 ]

JavaScript test | #JavaScript
❗️Что будет на выходе:
console.log(3 + 7 % 4);


Ответ: 6

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

const result = numbers.reduce((acc, num) => {
if (num % 2 === 0) {
acc.even += num;
} else {
acc.odd *= num;
}
return acc;
}, { even: 1, odd: 1 });

console.log(result);


Ответ: { even: 13, odd: 15 }

JavaScript test | #JavaScript
❗️Что будет на выходе:
const target = { a: 1, b: 2 };
const handler = {
get(obj, prop) {
return prop in obj ? obj[prop] * 2 : 'Not found';
}
};

const proxy = new Proxy(target, handler);

// Add a property to the original target
target.c = 3;

// Attempt to access properties through proxy and Reflect
console.log([
proxy.a,
proxy.z,
Reflect.get(target, 'b'),
Reflect.get(proxy, 'c')
]);


Ответ: [2, 'Not found', 2, 6]

JavaScript test | #JavaScript
❗️Что будет на выходе:
type User = {
id: number;
name: string;
role?: 'admin' | 'user';
};

function processUser(user: Partial<User>): string {
const defaultUser: User = {
id: 0,
name: 'Guest',
role: 'user'
};

const mergedUser = { ...defaultUser, ...user };

if (mergedUser.role === 'admin') {
return `Admin: ${mergedUser.name}`;
}

return `User: ${mergedUser.name} (ID: ${mergedUser.id})`;
}

console.log(processUser({ name: 'John', role: 'admin' }));


Ответ: Admin: John

JavaScript test | #JavaScript
❗️Что будет на выходе:
const secretKey = Symbol('key');
const secretValue = 'value';

function Store() {
this[secretKey] = secretValue;
}

Store.prototype.get = function(key) {
return this[key];
};

const store = new Store();
const revealed = store.get(secretKey);
console.log(revealed);


Ответ: 'value'

JavaScript test | #JavaScript
❗️Что будет на выходе:
function processConfig(config) {
const cache = config.cache ?? true;
const timeout = config.timeout ?? 1000;
const retries = config.retries ?? 3;

return {
useCache: cache,
timeoutMs: timeout,
maxRetries: retries
};
}

const result = processConfig({ timeout: 0, retries: false });
console.log(result);


Ответ: { useCache: true, timeoutMs: 0, maxRetries: false }

JavaScript test | #JavaScript
❗️Что будет на выходе:
function Foo() {
this.bar = 1;
}

Foo.prototype.bar = 2;

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


Ответ: 2
Foo { bar: 1 }


JavaScript test | #JavaScript
❗️Что будет на выходе:
const obj = {
value: 42,
getValue() {
return Math.max(this.value, obj.getValue);
}
};

const obj2 = {
value: 25,
getValue: obj.getValue
};

console.log(obj.getValue());
console.log(obj2.getValue());


Ответ: NaN
NaN


JavaScript test | #JavaScript
❗️Что будет на выходе:
function processInput(userInput) {
const defaultValue = 'default';
const value1 = userInput?.value ?? defaultValue;
const value2 = userInput?.value || defaultValue;

const result = {
a: 0 ?? 'zero',
b: '' ?? 'empty',
c: null ?? 'null',
d: undefined ?? 'undefined',
comparison: value1 === value2
};

console.log(result);
}

processInput({ value: '' });


Ответ: { a: 0, b: '', c: 'null', d: 'undefined', comparsion: false}

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

let columnSums = [];

for (let i = 0; i < matrix[0].length; i++) {
let sum = 0;
for (let j = 0; j < matrix.length; j++) {
sum += matrix[i][i];
}
columnSums.push(sum);
}
console.log(columnSums);


Ответ: 3
[ 3, 15, 27 ]

JavaScript test | #JavaScript
❗️Что будет на выходе:
const obj = { a: 2, b: 4, c: 6 };
const result = Object.values(obj).filter((acc, curr) => acc * curr, 2);
console.log(result);


Ответ: [ 4, 6 ]

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 numbers = [1, 2, 3, 4, 5];function recursiveMaxSubarraySum(nums, startIndex = 0, currentSum = 0, maxSum = -Infinity) {
if (startIndex === nums.length) {
return maxSum;
}

currentSum = Math.max(nums[startIndex], currentSum + nums[startIndex]);
maxSum = Math.max(currentSum, maxSum);

return recursiveMaxSubarraySum(nums, startIndex + 1, currentSum, maxSum);
}

const result = recursiveMaxSubarraySum([-2, 1, -3, 4, -1, 2, 1, -5, 4]);

console.log(result);


Ответ: 6

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

const obj = { a: 1 };
const { b } = obj;
console.log(b);


Ответ: undefined

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

function Device(name) {
this.name = name;
this.isOn = false;
}

Device.prototype.turnOn = function() {
this.isOn = true;
return `${this.name} is now on`;
};

function Smartphone(name, model) {
Device.call(this, name);
this.model = model;
}

Smartphone.prototype = Object.create(Device.prototype);
Smartphone.prototype.constructor = Smartphone;

Smartphone.prototype.turnOn = function() {
const result = Device.prototype.turnOn.call(this);
return `${result} (model: ${this.model})`;
};

const myPhone = new Smartphone('iPhone', '13 Pro');
console.log(myPhone.turnOn());


Ответ: iPhone is now on (model: 13 Pro)

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

function outer() {
var x = 2;

function inner() {
let x = 4;

function deeper() {
console.log(x);
}

return deeper;
}

return inner();
}

const fn = outer();
fn();


Ответ: 4

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

const data = [
{ id: 1, name: 'Alice', age: 17, gender: 'Female' },
{ id: 2, name: 'Bob', age: 30, gender: 'Male' },
{ id: 3, name: 'Charlie', age: 25, gender: 'Female' },
{ id: 4, name: 'David', age: 35, gender: 'Male' },
{ id: 4, name: 'John', age: 31 },
];

const result = data.filter(person => person.gender === 'Male').map(person => person.age).reduce((acc, age) => acc + age, 0);

console.log(result);


Ответ: 65

JavaScript test | #JavaScript
Узнай подходящую тебе карьеру за 5 минут.

Онлайн-школа участник проекта "Сколково" создала уникальный инструмент профориентации, который раскроет ваш потенциал. Простой тест с вариантами ответа, менее чем из 20 вопросов.

В конечный результат вошли только самые востребованные профессии для 2025 года, большинство специальностей из сферы IT и Дизайна, именно в них на сегодня наибольшие доходы.

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

Реклама. Информация о рекламодателе по ссылкам в посте.