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

Ссылка: @Portal_v_IT

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

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

РКН: clck.ru/3KHeYk
Download Telegram
❗️Что будет на выходе:

const weakSet = new WeakSet();

let obj1 = { id: 1 };
let obj2 = { id: 2 };
let obj3 = obj1;

weakSet.add(obj1);
weakSet.add(obj2);

const results = [
weakSet.has(obj1),
weakSet.has(obj3),
weakSet.has({ id: 2 }),
weakSet.has(obj2)
];

obj1 = null;

console.log(results);

Ответ:
[true, true, false, true]

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

function Animal() {}

function Dog() {}

Dog.prototype = Object.create(Animal.prototype);

const rover = new Dog();

console.log(rover.constructor == Animal);

Ответ:
false

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

function X() {}
X.prototype.getValue = function() {
return this.value;
};

function Y() {
this.value = 42;
}
Y.prototype = Object.create(X.prototype);
Y.prototype.constructor = Y;

var y = new Y();
console.log(y.getValue());


Ответ: 42

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

console.log(1);

setTimeout(() => {
console.log(2);
Promise.resolve().then(() => console.log(3));
}, 0);

Promise.resolve()
.then(() => {
console.log(4);
setTimeout(() => console.log(5), 0);
})
.then(() => console.log(6));

console.log(7);


Ответ: 1, 7, 4, 6, 2, 3, 5

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

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


Ответ: undefined

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

const obj = { a: 1, b: 2, c: 3 };
const result = Object.values(obj).reduce((acc, curr) => acc * curr, 1);
console.log(result);


Ответ: 6

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

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);


Ответ: [true, 5, true, 'undefined']

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

function Shape() {}

function Circle(radius) {
this.radius = radius;
}

Circle.prototype = Object.create(Shape.prototype);
Circle.prototype.constructor = Circle;

const shape = new Shape();
const circle = new Circle(5);

console.log(circle instanceof Circle);
console.log(circle instanceof Shape);
console.log(shape instanceof Circle);
console.log(shape instanceof Shape);


Ответ: true, true, false, true

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

function recursiveFibonacci(n) {
return n <= 1 ? n : recursiveFibonacci(n - 1) + recursiveFibonacci(n - 2);
}

const result = recursiveFibonacci(6);

console.log(result);


Ответ:8

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

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));


Ответ: { status: 'Range Error', message: 'Amount must be positive' }

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

const arr = [1, 2, 3];
arr[-1] = 10;
console.log(arr.length, arr);


Ответ: 3 [ 1, 2, 3, '-1': 10 ]

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

for (var i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 100);
}

Ответ: 3, 3, 3

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

function modify(obj) {
obj.a.push(4);
obj.b = 'changed';
return obj;
}

const original = { a: [1, 2, 3], b: 'original', c: { deep: true } };
const copy1 = { ...original };
const copy2 = JSON.parse(JSON.stringify(original));

modify(copy1);
console.log(original.a, original.b, copy2.c === original.c);

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

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

const result = (function() {
let count = 0;

return {
increment() {
return ++count;
},
get value() {
return count;
},
reset() {
const oldCount = count;
count = 0;
return oldCount;
}
};
})();

result.increment();
result.increment();
console.log(result.reset() + result.value + result.increment());

Ответ: 3

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

const weakMap = new WeakMap();
const arr = [1, 2, 3].map(n => ({ n }));

arr.forEach(obj => weakMap.set(obj, obj.n * 2));

arr.pop(); // Remove the last element

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

console.log(result);

Ответ: 6

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

const range = Array.from({ length: 5 }, (_, index) =>
index + 1);
console.log(range);

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

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

const weakMap = new WeakMap();
const gen = (function* () {
yield { key: 'value1' };
yield { key: 'value2' };
})();

const obj1 = gen.next().value;
const obj2 = gen.next().value;

weakMap.set(obj1, 'stored value1');
weakMap.set(obj2, 'stored value2');

const result = [...gen].map(obj => weakMap.get(obj));

console.log(result);

Ответ: []

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

const a = [1, 2, 3, 4];
console.log(a + "");


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

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

try {
const arr = [1, 2, 3];

function processArray() {
try {
nonExistentFunction();
} catch (err) {
throw new TypeError('Invalid type');
}
}

try {
processArray();
} catch (err) {
console.log(err instanceof Error, err instanceof TypeError, err.message);
}
} catch (finalError) {
console.log('Caught in outer block:', finalError);
}


Ответ: true, true, Invalid type

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

const arr = [];
arr.length = 3;
arr[2] = 1;
arr.forEach((el, i) => console.log(i))

Ответ: 2

JavaScript test | #JavaScript