Web Overflow 🇺🇦
4.42K subscribers
382 photos
40 videos
3 files
518 links
Затишний блог про веб-розробку і не тільки 💛

Чат: @web_overflow_chat
Співпраця: @web_overflow_support
Автори: @lluchkaa & @anastasiia_tarasenko
加入频道
qs 🔗

Часто в своїх API-запитах ми додаємо query-параметри. Їх використання може бути дуже різним: вказівка на сортування/фільтрування даних, значення форми за замовчуванням, посилання, яке потрібно відкрити наступним і тд. Так само і дані, які ви туди записуєте, можуть бути зовсім різними.

Бібліотека qs дозволяє серіалізувати/парсити query-параметри та надає різні варіанти конфігурацій. Тут можна використовувати і вкладені обʼєкти, і масиви. Серед конфігурацій можна, наприклад, дозволити пусті масиви, використовувати індекси в масивах чи крапку в обʼєктах.

Ми одного разу використовували сторонню API, в якій був специфічний парсер query, і ця бібліотека нас тоді дуже виручила.

👉 Відкрити посилання

#library
👍161🔥1
Яку бібліотеку використовує Next.js для оптимізації зображень?
Anonymous Quiz
13%
dull
33%
sharp
7%
C#
47%
svgo
🤔12👍41
Welcome!

Let's practice our English! So...

👉 What are your plans for the last month of summer?

Have a nice #english_friday 💛
👍42
Чи пишете ви тести на своєму теперішньому проєкті?
Anonymous Poll
29%
Так
45%
Ні
26%
Я не роблю багів 😁
👍3😁31
Метод hasOwnProperty 🤓

Ні разу цей метод не використовували в реальних проектах, але на співбесідах питають, тому погнали розбиратись.

Сподіваємось, ви знайомі з циклом for ... in, який проходиться по всіх властивостях за довільною послідовністю. Наприклад:


const human = {
eat: true
};

const programmer = {
sleep: false,
__proto__: human
};

for (const key in programmer) {
alert(key); // виведе і "eat", і "sleep"
}


Але іноді хочеться подивитися, що знаходиться в самому об'єкті, а не в його прототипі.

Виклик obj.hasOwnProperty(prop) повертає true, якщо властивість prop належить самому об'єкту obj, інакше false. Наприклад:


const human = {
eat: true
};

const programmer = {
sleep: false,
__proto__: human
};

alert(programmer.hasOwnProperty('sleep')); // true: sleep належить до programmer
alert(programmer.hasOwnProperty('eat')); // false: eat не належить


#interview
👍15🔥41
👍3🤔31
Що потрібно написати замість ... , щоб код став валідним?
Anonymous Quiz
24%
CATEGORIES[number]
37%
typeof CATEGORIES
28%
typeof CATEGORIES[number]
11%
typeof CATEGORIES[number][]
👍7🤔61
#todo написати функцію на будь-якій мові програмування, яка розділяє масив людей на підмасиви за віком.

Функція має приймати два аргументи: масив обʼєктів типу Person, де Person = { name: string, age: number }, та масив чисел breakpoints. Функція має повернути двовимірний масив, де кожен i-ий рядок - підмасив people, в яких breakpoints[i - 1] <= age < breakpoints[i] для i > 1 та age < breakpoints[i] для i = 1.

Так, так, ми тут почали рахувати з 1! І ні, це завдання не повʼязано з ейджизмом!



people = [
{ name: "John", age: 16 },
{ name: "Jane", age: 17 },
{ name: "Joe", age: 30 },
]

breakpoints = [18, 21, 35]

output = [
[
{ name: "John", age: 16 },
{ name: "Jane", age: 17 },
],
[],
[{ name: "Joe", age: 30 }],
]
👍32🤓2🤔1
PlayPhrase.me 👀

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

Крім ChatGPT, який старається нам все пояснити, ми використовуємо PlayPhrase.me - сайт, де можна почути вживання слова або фрази в реальних фільмах чи серіалах.

Рекомендуємо!

👉 Відкрити посилання

#tips
👍9🔥41
Допоможіть вирішити нашу суперечку 👿
👍7🕊51
Який варіант написання коду ви б обрали?
Anonymous Poll
45%
handleString1
28%
handleString2
27%
Про switch не чули?
👍7🕊31😱1
Welcome!

Let's practice our English! So...

👉 What is your worst habit?

Have a nice #english_friday 💛
👍43🌚1
Де ви витрачаєте найбільше часу?
Anonymous Poll
70%
Telegram
20%
Instagram
13%
Tik-Tok
3%
Facebook
5%
Twitter
46%
YouTube
8%
Інше
👍43🔥1
Чим стрілочна функція відрізняється від звичайної? 🤓

Здивовані, що раніше про це не писали. Були тести, але повного розбору не було, а це важливо знати як і на співбесіді, так і в роботі.

Вирішили створити окрему статтю, щоб все було наглядно і з прикладами.

Тому, запрошуємо до прочитання 💛

👉 Відкрити посилання

#interview
👍16🔥82
👍6🔥21
Що виведе консоль?
Anonymous Quiz
9%
undefined false
15%
undefined true
24%
quiz false
52%
quiz true
👍113🔥2
#todo написати функцію на будь-якій мові програмування, яка приймає повний шлях до файлу та повертає число.

Файл може містити довільну кількість рядків, кожен з яких містить мінімум одну цифру. Необхідно знайти першу та останню цифру та скласти їх в число. Функція має сформувати числа для кожного рядка та повернути їх суму.

Наприклад:
abc1def2 => 12
dhij3klm => 33
4no5p6qr => 46


Результат = 91
🤔5👍4
Function overload 🥵

Можливо, ви коли-небудь працювали з мовою, яка дозволяє перевантажувати функції. В JavaScript такої потреби немає, адже немає статичної типізації. В TypeScript, хоч типи і не такі як в компільованих мовах, перевантаження функцій теж доступне.

Нехай вам чомусь потрібна функція convert, яка перетворює boolean в number, а number в string. Звісно, можна спробувати Generics, але тут можна обійтись і без них, просто перевантаживши функцію.

Спочатку, потрібно написати "голову" функції для кожного випадку. У вас обовʼязково має бути різний список аргументів (за довжиною чи за типом).
function convert(x: boolean): number;
function convert(x: number): string;


Після цього вам необхідно написати саме тіло функції. Воно обовʼязково має задовольняти кожне попереднє оголошення функції.
function convert(x: boolean | number): number | string {
return typeof x === "boolean" ? Number(x) : String(x)
}


Зауважте, що TypeScript буде використовувати лише оголошення без тіла функції, коли працюватиме з типізацією. Виглядатиме все так, наче у вас дві різні функції, проте з однаковим іменем.

convert(Math.random() > 0.5 ? true : 1)

Отак не вийде зробити, адже немає функції convert, яка може прийняти boolean | number, вона може прийняти лише конкретно boolean або number. Саме ця частина спочатку часто може збивати з пантелику.

Якщо хочете дослідити це питання більше, нижче додаємо вам посилання на Handbook TypeScript.

👉 Відкрити посилання

#tips
👍10🔥31
Всі шляхи цього місяця ведуть на найбільший нетворк IT-спільноти. Вибачте, без варіантів. 31 серпня, Київ, Unit City.

До зустрічі, квитки тут! Програма 👉 https://dou.ua/goto/RlpI
👍42🐳2