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

Ссылка: @Portal_v_IT

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

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

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

const original = Object.freeze({ a: [1, 2, 3] });
const copy = { ...original };

copy.a.push(4);

console.log(original.a);
console.log(copy);

Ответ: 4
[ 1, 2, 3, 4 ]
{ a: [ 1, 2, 3, 4 ] }


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

const user = {
profile: {
name: 'Alice',
settings: {
notifications: {
email: true,
sms: false
}
}
},
getPreference(type) {
return this.profile?.settings?.notifications?.[type] ?? 'not configured';
}
};

const admin = {
profile: {
name: 'Admin',
settings: null
},
getPreference: user.getPreference
};

console.log(admin.getPreference('email'));

Ответ: not configured

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

let arr = [1, 2, 3];
for (i = 0; i < arr.length; arr[i++] = i++);
console.log(arr);

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

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

const arr = [1,2,3];
arr[Symbol.iterator] = function*() { yield *[3,2,1, arr[0]]; };

for (const n of arr) {
console.log(n);
}

Ответ: 3
2
1
1


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

const companies = [
{ name: 'TechCorp', founded: 2010 },
{ name: 'DataSystems', founded: 2015 },
{ name: 'WebSolutions', founded: 2008 }
];

const activeClients = new WeakSet();

activeClients.add(companies[0]);
activeClients.add(companies[2]);

companies.pop();

const result = [
activeClients.has(companies[0]),
activeClients.has(companies[1]),
typeof activeClients.size
];

console.log(result);

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

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

const obj = {
value: 64,
increment() {
this.value--;
}
};

const increment = obj.increment;
increment();

console.log(obj.value);

Ответ: 64

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

function* generator() {
yield 'a';
yield* 'bcd';
yield 'e';
}
console.log([...generator()]);

Ответ: [ 'a', 'b', 'c', 'd', 'e' ]

JavaScript test | #JavaScript
🔥🔥 Spektr объявил главные российские экосистемы по знанию и использованию в наибольшем числе вертикалей

Сбер лидирует в 8 из 18 ключевых цифровых вертикалей согласно исследованию Spektr, а Яндекс — в 6.

По частоте использования Сбер тоже впереди (8 из 18 направлений), включая финансы и работу (Работа.ру). Яндекс — второй (5 из 18), но ведёт в такси, картах и путешествиях (Яндекс Путешествия).
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Что будет на выходе?

function processConfig(config) {
const defaults = {
timeout: 1000,
retries: 3,
enabled: false,
count: 0
};

const settings = {
...defaults,
...config
};

const effectiveTimeout = settings.timeout ?? 500;
const effectiveRetries = settings.retries ?? 1;
const effectiveEnabled = settings.enabled ?? true;
const effectiveCount = settings.count ?? 5;

console.log([effectiveTimeout, effectiveRetries, effectiveEnabled, effectiveCount]);
}

processConfig({ timeout: null, retries: 0, enabled: undefined });

Ответ: [500, 0, true, 0]

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

let funcs = [];

for (var i = 0; i <= 3; i++) {
funcs.push(() => i);
}

console.log(funcs[0]());
console.log(funcs[1]());
console.log(funcs[2]());

Ответ: 4
4
4
4


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

const numbers = [33, 2, 8];
numbers.sort();
console.log(numbers);

Ответ: [ 2, 33, 8 ]

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

const x = "5";
const y = 3;
const result = x - y;
console.log(result);

Ответ: 2

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

let proto = { a: 1 };
let obj = Object.create(proto);

Object.defineProperty(obj, 'a', {
value: 3,
writable: true,
enumerable: true,
configurable: true
});

console.log(obj.a);
proto.a = 3;
console.log(obj.a);

Ответ: { a: 3 }
3
3
3


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

const a = 9007199254740991n;
const b = 2n;

function performCalculation() {
const c = a + 1n;
const d = c / b;
const e = d * 2n - 1n;

const result = Number(e) === Number(a);
console.log(result);
}

performCalculation();

Ответ: true

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

const obj = {
[Symbol('a')]: 'hidden',
a: 'visible',
[Symbol.for('b')]: 'registered',
b: 123
};

const symbol1 = Symbol.for('b');
const symbol2 = Symbol.for('b');

console.log(obj.a + ', ' +
obj[Symbol('a')] + ', ' +
obj[symbol1] + ', ' +
(symbol1 === symbol2));

Ответ: visible, undefined, registered, true

JavaScript test | #JavaScript
🖥 Linux Academy — топ-канал для продвинутого освоения Linux.

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

Экспресс-гайды, которые экономят часы поиска: t.me/linuxacademiya
Please open Telegram to view this post
VIEW IN TELEGRAM