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

class Observable {
constructor(subscribe) {
this.subscribe = subscribe;
}

map(fn) {
return new Observable(observer => {
return this.subscribe({
next: value => observer.next(fn(value)),
error: err => observer.error(err),
complete: () => observer.complete()
});
});
}
}

const source = new Observable(observer => {
observer.next(1);
observer.next(2);
observer.complete();
});

const doubled = source.map(x => x * 2);
doubled.subscribe({
next: value => console.log(value),
complete: () => console.log('done')
});

Ответ: 2 4 done

JavaScript test | #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Что будет на выходе:

var a = 5;
function test() {
console.log(a);
var a = 10;
console.log(a);
}

test();


Ответ: undefined 10

JavaScript test | #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Что будет на выходе:

function plus(a,b){
console.log(`${a} + ${b} = ${a+b}`);
}
plus(1,2);
plus(3,4);

Ответ:
1 + 2 = 3
3 + 4 = 7


JavaScript test | #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Что будет на выходе:

const obj = {
name: 'Sarah',
greet() {
return `Hello, ${this.name}`;
},
delayedGreet() {
const fn = function() {
return this.greet();
};
return fn.call(this);
}
};

const result = obj.delayedGreet();
console.log(result);

Ответ: Hello, Satah

JavaScript test | #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Что будет на выходе:

class Calculator {
static multiply(a, b) {
return a * b;
}

static add = (a, b) => {
return a + b;
}
}

class ScientificCalculator extends Calculator {
static multiply(a, b) {
return super.multiply(a, b) * 2;
}
}

console.log(Calculator.multiply(3, 4));
console.log(ScientificCalculator.add(5, 6));
console.log(ScientificCalculator.multiply(2, 3));

Ответ: Hello, Satah

JavaScript test | #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Что будет на выходе:

async function fetchData() {
return 'Data loaded';
}

async function processData() {
console.log('Starting...');
try {
const result = fetchData();
console.log(result);
console.log(await result);
return 'Processing complete';
} catch (error) {
return 'Error occurred';
} finally {
console.log('Cleanup');
}
}

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

Ответ: Starting... Promise { 'Data loaded' } Data loaded Cleanup Processing complete

JavaScript test | #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Что будет на выходе:

var foo = {};
var bar = Object.create(foo);

foo.a = 1;

console.log(bar.a);

Ответ: 1

JavaScript test | #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Программирование — В С Ё

В 2025 году на кодинге уже не вывезешь, перспектива года - Информационная Безопасность.

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

👍 ZeroDay — Уроки, эксплуатация уязвимостей с нуля
👍 Белый Хакер — Свежие новости из мира ИБ
😎 Арсенал Безопасника — Все необходимые инструменты
😎 Бункер Хакера — Статьи, книги, шпаргалки и хакинг
👨‍💻 Серверная Админа — Настройка и уроки по компьютерным сетям

📂 Вступай и изучай новое направление!
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Что будет на выходе:

class Observable {
constructor(subscriber) {
this.subscriber = subscriber;
}

subscribe(observer) {
return this.subscriber(observer);
}

map(fn) {
return new Observable(observer => {
return this.subscribe({
next: value => observer.next(fn(value)),
error: err => observer.error(err),
complete: () => observer.complete()
});
});
}
}

const source = new Observable(observer => {
observer.next(1);
observer.next(2);
observer.complete();
});

const doubled = source.map(x => x * 2);
doubled.subscribe({
next: value => console.log(value),
complete: () => console.log('done')
});

Ответ: 2 4 done

JavaScript test | #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Что будет на выходе:

function* reverseGenerator(arr) {
for (let i = arr.length - 1; i >= 0; i--) {
yield arr[i];
}
}

const result = [...reverseGenerator([1, 2, 3, 4, 5])].join('');

console.log(result);

Ответ: "54321"

JavaScript test | #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Что будет на выходе:

const a = 9007199254740991n;
const b = BigInt(9007199254740991);
const c = 9007199254740992;
const d = BigInt(9007199254740992);

console.log(a === b);
console.log(Number(a) === c);
console.log(c === Number.MAX_SAFE_INTEGER + 1);
console.log(d > a);
console.log(typeof (a + 1n));
console.log(Number(d) === c);

Ответ: true false true true bigint true

JavaScript test | #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Что будет на выходе:

let obj = { name: 'Sarah', age: 25 };
let weakMap = new WeakMap();
let map = new Map();

weakMap.set(obj, 'weak reference');
map.set(obj, 'strong reference');

console.log(weakMap.has(obj));
console.log(map.has(obj));

obj = null;

console.log(weakMap.has(null));
console.log(map.has(null));
console.log(map.size);

Ответ: true true false false 1

JavaScript test | #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Что будет на выходе:

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
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Что будет на выходе:

let obj = { name: 'Sarah', age: 25 };
let weakMap = new WeakMap();
let map = new Map();

weakMap.set(obj, 'weak reference');
map.set(obj, 'strong reference');

console.log(weakMap.has(obj));
console.log(map.has(obj));

obj = null;

console.log(weakMap.has(null));
console.log(map.has(null));
console.log(map.size);

Ответ: true true false false 1

JavaScript test | #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Что будет на выходе:

const numbers = [1, 2, 3, 4, 5];

const result = numbers
.map(x => x * 2)
.filter(x => x > 5)
.reduce((acc, x) => {
acc.push(x.toString());
return acc;
}, [])
.map(x => x + '!')
.join(' | ');

console.log(result);
console.log(typeof result);

Ответ: 6! | 8! | 10! string

JavaScript test | #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Что будет на выходе:

const data = '{"name": "Maria", "age": 25, "skills": ["JavaScript", "Python"]}';

try {
const parsed = JSON.parse(data);
const modified = {
...parsed,
age: parsed.age + 5,
skills: [...parsed.skills, "TypeScript"]
};

const serialized = JSON.stringify(modified, null, 0);
const reparsed = JSON.parse(serialized);

console.log(reparsed.skills.length);
console.log(typeof reparsed.age);
} catch (error) {
console.log('Parse error');
}

Ответ: 3, number

JavaScript test | #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Что будет на выходе:

const obj = {};
let value = 0;

Object.defineProperty(obj, 'prop', {
get() {
return value;
},
set(newValue) {
value = newValue + 1;
},
configurable: true,
enumerable: true
});

obj.prop = 10;
console.log(obj.prop);

Ответ: 11

JavaScript test | #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Что будет на выходе:

function* fibonacci() {
let [a, b] = [0, 1];
while (true) {
yield a;
[a, b] = [b, a + b];
}
}

function* takeWhile(generator, predicate) {
for (const value of generator) {
if (!predicate(value)) break;
yield value;
}
}

const fib = fibonacci();
const smallFibs = takeWhile(fib, x => x < 20);
console.log([...smallFibs].join(','));

Ответ: 0,1,1,2,3,4,8,13

JavaScript test | #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Что будет на выходе:

const x = [1, 2, 3, 4, 5];
console.log(x.slice(1, 3));

Ответ: [2, 3]

JavaScript test | #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Что будет на выходе:

const numbers = [1, 2, 3, 4, 5];

const pipeline = (...fns) => (value) => fns.reduce((acc, fn) => fn(acc), value);

const multiply = (x) => (y) => x * y;
const add = (x) => (y) => x + y;
const square = (x) => x * x;

const transform = pipeline(
multiply(2),
add(3),
square
);

const result = numbers.map(transform);
console.log(result);

Ответ: [25, 49, 81, 121, 169]

JavaScript test | #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Что будет на выходе:

const target = { name: 'Maya', age: 25 };
const handler = {
get(obj, prop) {
if (prop in obj) {
return obj[prop];
}
return `Property '${prop}' not found`;
},
set(obj, prop, value) {
if (typeof value === 'string') {
obj[prop] = value.toUpperCase();
} else {
obj[prop] = value;
}
return true;
}
};
const proxy = new Proxy(target, handler);
proxy.city = 'tokyo';
console.log(proxy.name);
console.log(proxy.city);
console.log(proxy.country);

Ответ: Maya TOKYO Property 'country' not found

JavaScript test | #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM