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

Ссылка: @Portal_v_IT

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

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

РКН: clck.ru/3KHeYk
Download Telegram
❗️Что будет на выходе:
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
❗️Что будет на выходе:
function* createCounter() {
let count = 0;
while (true) {
const reset = yield ++count;
if (reset) {
count = 0;
}
}
}

const counter = createCounter();
console.log(counter.next().value);
console.log(counter.next().value);
console.log(counter.next(true).value);
console.log(counter.next().value);

Ответ: 1 2 1 2

JavaScript test | #JavaScript
❗️Что будет на выходе:
const base = { x: 1 };
const obj = Object.freeze(base);

base.y = 2;
console.log(base.y);


Ответ: undefined

JavaScript test | #JavaScript
❗️Что будет на выходе:
function createCounter() {
let count = 0;

const counter = {
increment() {
count++;
return count;
},
getCount() {
return count;
}
};

return counter;
}

let c1 = createCounter();
c1.increment();
c1.increment();

let c2 = c1;
c1 = null;

console.log(c2.getCount());


Ответ: 2

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

const obj1 = { name: 'First' };
const obj2 = { name: 'Second' };
const obj3 = obj1;

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

let result = '';
result += weakSet.has(obj1) + ', ';
result += weakSet.has(obj3) + ', ';

obj2.name = 'Modified';
result += weakSet.has(obj2) + ', ';

weakSet.delete(obj1);
result += weakSet.has(obj3);

console.log(result);


Ответ: true true true false

JavaScript test | #JavaScript
❗️Что будет на выходе:
const person = {
name: "John",
greet: function() {
const getMessage = () => `Hello, ${this.name}`;
return getMessage();
}
};

console.log(person.greet());

Ответ: Generic sound

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

b[0] = 0;

console.log(a);

Ответ: [0, 2, 3]

JavaScript test | #JavaScript
❗️Что будет на выходе:
class LightMachine {
constructor() {
this.states = {
green: { next: 'yellow' },
yellow: { next: 'red' },
red: { next: 'green' }
};
this.currentState = 'green';
}

transition() {
this.currentState = this.states[this.currentState].next;
return this.currentState;
}
}

const lightMachine = new LightMachine();
let result = '';
for (let i = 0; i < 5; i++) {
result += lightMachine.transition() + ' ';
}
console.log(result.trim());

Ответ: yellow red green yellow red

JavaScript test | #JavaScript
❗️Что будет на выходе:
console.log(0 || {} && 1);

Ответ: 1

JavaScript test | #JavaScript
❗️Что будет на выходе:
async function processValues() {
try {
console.log('Start');
const a = await Promise.resolve('First');
console.log(a);
const b = await Promise.reject('Error');
console.log(b);
return 'Done';
} catch (err) {
console.log(err);
return 'Recovered';
} finally {
console.log('Finally');
}
}

processValues().then(result => console.log(result));

Ответ: Start First Error Finally Recovered

JavaScript test | #JavaScript
❗️Что будет на выходе:
const func = () => arguments.length;
console.log(func(1, 2, 3));


Ответ: TypeError

JavaScript test | #JavaScript
❗️Что будет на выходе:
function greet(name) {
return `Hello, ${name}!`;
}

function highlight(strings, ...values) {
return strings.reduce((result, str, i) => {
return result + str + (values[i] ? `<em>${values[i]}</em>` : '');
}, '');
}

const user = 'Sarah';
const status = 'online';

console.log(highlight`User ${user} is currently ${status}.`);


Ответ: User <em>Sarah</em> is currently <em>online</em>.

JavaScript test | #JavaScript
❗️Что будет на выходе:
function Person(name) {
this.name = name;
this.sayName = () => console.log(this.name);
}

const person1 = new Person('David');
const person2 = { name: 'Not David', sayName: person1.sayName };

person2.sayName();

Ответ: David

JavaScript test | #JavaScript
This media is not supported in your browser
VIEW IN TELEGRAM
Программистов заменит ИИ?

Краткий ответ — нет.

Но нейросети уже пишут простые проекты, а рынок становится жёстче.
Зарплаты стагнируют, джуны без офферов, сокращения — обычное дело.

Сейчас самое время залетать в Кибербез. Эта область только набирает обороты. Спрос растёт, но конкуренции пока почти нет.

Ловите годные каналы, которые помогут ворваться в новое направление:

👍 ZeroDay — Подробные уроки по безопасности с нуля, эксплуатации уязвимостей, инструментам и свежие новости.

👨‍💻 Серверная Админа — Большое количество уроков, статей, книг и гайдов по устройству и настройке компьютерных сетей. База которую должен знать каждый
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Что будет на выходе:
const weakMap = new WeakMap();
const obj1 = {};
const obj2 = { key: 'value' };

weakMap.set(obj1, obj2);

const result = weakMap.get(obj1).key.split('').reverse().join('');

console.log(result);

Ответ: "eulav"

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

function createCounter() {
let count = 0;

function increment() {
count++;
return count;
}

function decrement() {
count--;
return count;
}

return { increment, decrement, reset: () => count = 0 };
}

const counter = createCounter();
counter.increment();
counter.increment();
counter.decrement();

const { increment, reset } = counter;
increment();
reset();
increment();

console.log(counter.increment());


Ответ: 2

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

class VideoCall {
constructor() {
this.pc = { iceConnectionState: 'new' };
this.streams = [];
}

async connect() {
this.pc.iceConnectionState = 'checking';
await Promise.resolve();
this.pc.iceConnectionState = 'connected';
this.streams.push('remote-video');
return this.pc.iceConnectionState;
}

handleConnectionChange() {
const states = ['new', 'checking', 'connected'];
return states.map(state => {
return this.pc.iceConnectionState === state ? `Status: ${state}` : null;
}).filter(Boolean);
}
}

const call = new VideoCall();
call.connect().then(() => {
console.log(call.handleConnectionChange());
});


Ответ: ['Status: connected']

JavaScript test | #JavaScript
❗️Что будет на выходе:
const obj = {
a: 1,
then(resolve) {
resolve(this.a);
}
};

obj.then(console.log);


Ответ: 1

JavaScript test | #JavaScript
❗️Что будет на выходе:
console.log('Start');

setTimeout(() => {
console.log('Timeout 1');
}, 0);

Promise.resolve().then(() => {
console.log('Promise 1');
}).then(() => {
console.log('Promise 2');
});

setTimeout(() => {
console.log('Timeout 2');
}, 0);

console.log('End');

Ответ: Start, End, Promise 1, Promise 2, Timeout 1, Timeout 2

JavaScript test | #JavaScript
❗️Что будет на выходе:
function getItems(fruitList, ...args, favoriteFruit) {
return [...fruitList, ...args, favoriteFruit]
}

getItems(["banana", "apple"], "pear", "orange")


Ответ: SyntaxError

JavaScript test | #JavaScript
❗️Что будет на выходе:
const obj = {
value: 1,
increment() {
this.value++;
}
};

const increment = obj.increment;
increment();

console.log(obj.value);

Ответ: 1

JavaScript test | #JavaScript