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

Ссылка: @Portal_v_IT

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

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

РКН: clck.ru/3KHeYk
Download Telegram
❗️Что будет на выходе:
function outer() {
console.log(typeof inner);
console.log(typeof inner2);

var inner = function() {
return 'Inside inner';
};

function inner2() {
return 'Inside inner2';
}

console.log(typeof inner);
console.log(typeof inner2);
}

outer();

Ответ: undefined function function function

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

const result = numbers
.filter(num => num % 2 === 0)
.map(num => num * 2)
.reduce((acc, curr, idx, arr) => {
if (idx === arr.length - 1) {
return (acc + curr) / arr.length;
}
return acc + curr;
}, 0);

console.log(result);

Ответ: 12

JavaScript test | #JavaScript
❗️Что будет на выходе:
const obj = {
x: 10,
foo() {
setTimeout(function() {
console.log(this.x);
}, 1000);
}
};
obj.foo();

Ответ: undefined

JavaScript test | #JavaScript
❗️Что будет на выходе:
const cache = new WeakMap();

const user1 = { name: 'Alice' };
const user2 = { name: 'Bob' };

cache.set(user1, { lastLogin: 'yesterday' });
cache.set(user2, { lastLogin: 'today' });

const result = [];
result.push(cache.has(user1));
result.push(cache.get(user2).lastLogin);

let user3 = { name: 'Charlie' };
cache.set(user3, { lastLogin: 'now' });
result.push(cache.has(user3));

user3 = null; // Removing the reference
// Garbage collector might run here in real situations

const user4 = { name: 'Charlie' }; // Same name, different object
result.push(cache.has(user4));

console.log(result);

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

JavaScript test | #JavaScript
❗️Что будет на выходе:
function processData({ a = 10, b = 20 } = { a: 30 }) {
console.log(a, b);
}

processData({ a: 5 });
processData();

Ответ: 5 20 30 20

JavaScript test | #JavaScript
❗️Что будет на выходе:
const target = {
secret: "hidden",
reveal: "nothing"
};

const handler = {
get: function(obj, prop, receiver) {
if (prop === "secret") {
return "revealed";
}
return Reflect.get(...arguments);
}
};

const proxy = new Proxy(target, handler);

with (proxy) {
console.log(secret);
console.log(reveal);
}

Ответ: revealed nothing

JavaScript test | #JavaScript
❗️Что будет на выходе:
const items = ['apple', 'banana', 'cherry', 'date'];  

const result = items
.map(item => item.toUpperCase())
.filter(item => item.length > 5)
.reduce((acc, item, index) => {
return acc + (index === 0 ? '' : '-') + item.slice(0, 3);
}, '');

console.log(result);

Ответ: BAN-CHE

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

console.log(array.length);


Ответ: 3

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

const result = numbers
.filter(n => n % 2 === 0)
.map(n => n * 2)
.reduce((acc, curr, idx, arr) => {
if (idx === arr.length - 1) {
return (acc + curr) / arr.length;
}
return acc + curr;
}, 0);

console.log(result);


Ответ: 12

JavaScript test | #JavaScript
❗️Что будет на выходе:
const weakMap = new WeakMap();
const obj = {};

(function() {
const internalObj = {};
weakMap.set(internalObj, 'hidden');
obj.ref = internalObj;
})();

delete obj.ref;

const result = weakMap.has(obj.ref);

console.log(result);

Ответ: false

JavaScript test | #JavaScript
❗️Что будет на выходе:
const teams = [
{ name: 'Warriors', players: ['Curry', 'Thompson'] },
{ name: 'Lakers', players: ['James', 'Davis'] }
];

const newTeams = JSON.parse(JSON.stringify(teams));
newTeams[0].players.push('Green');

const shallowCopy = [...teams];
shallowCopy[1].name = 'Clippers';

const freezeTest = Object.freeze({nested: {value: 42}});
freezeTest.nested.value = 100;

console.log(teams[1].name, teams[0].players.length, freezeTest.nested.value);

Ответ: Clippers 2 100

JavaScript test | #JavaScript
❗️Что будет на выходе:
let x = 5;
function addFive(num) {
return num + 5;
}
x = (x++, x = addFive(x), x *= 2, x -= 5, x += 10);
console.log(x);

Ответ: 27

JavaScript test | #JavaScript
❗️Что будет на выходе:
console.log(1);
setTimeout(() => console.log(2), 0);
Promise.resolve()
.then(() => {
console.log(3);
return Promise.resolve(4);
})
.then(console.log);
console.log(5);

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

JavaScript test | #JavaScript
❗️Что будет на выходе:
let x = 5;

function foo() {
console.log(x);
let x = 10;
console.log(x);
}

foo();

Ответ: ReferenceError: Cannot access 'x' before initialization

JavaScript test | #JavaScript
❗️Что будет на выходе:
const numbers = [0,0,0];

let i = 0;
const result = numbers.reduce((acc, _) => {
return ++acc;
}, i);

console.log(i, result);

Ответ: 0 3

JavaScript test | #JavaScript
❗️Что будет на выходе:
const fruits = ['apple', 'banana', 'cherry'];
const newFruits = [...fruits];

newFruits.push('date');

const user = { name: 'Taylor', age: 30 };
const updatedUser = { ...user, age: 31 };

user.city = 'Seattle';

console.log(fruits.length, newFruits.length, user.city, updatedUser.city);

Ответ: 3 4 Seattle undefined

JavaScript test | #JavaScript
❗️Что будет на выходе:
const str = "a 1 b 2 c 3 d 04";

function foo(str) {
const regex = /\d+/g;
const matches = str.match(regex);
return matches.lenght;
}


Ответ: 4

JavaScript test | #JavaScript
❗️Что будет на выходе:
const add = x => y => x + y;
const multiply = x => y => x * y;
const subtract = x => y => x - y;

const result = add(10)(multiply(2)(subtract(5)(3)));
console.log(result);


Ответ: 14

JavaScript test | #JavaScript
❗️Что будет на выходе:
const handler = {
get(target, prop) {
if (prop in target) {
return target[prop] * 2;
} else {
return `Property ${prop} not found`;
}
},
set(target, prop, value) {
if (typeof value === 'number') {
target[prop] = Math.round(value);
return true;
}
return false;
}
};

const obj = { a: 5, b: 10 };
const proxy = new Proxy(obj, handler);

proxy.c = 7.8;
proxy.d = "hello";

console.log(obj.c, proxy.a, proxy.x);


Ответ: 8 10 Property x not found

JavaScript test | #JavaScript
❗️Что будет на выходе:
class Rectangle {
constructor(width, height) {
this.width = width;
this.height = height;
}

get area() {
return this.width * this.height;
}
}

const rectangle = new Rectangle(5, 10);
console.log(rectangle.area());


Ответ: TypeError: rectangle, area is not a function at line 13

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