code_notes
71 subscribers
136 photos
1 video
134 links
учусь делать веб

обратная связь: t.me/dmorenogogoleva
Download Telegram
align-items: start
align-content: start
justify-items: start
justify-content: start
все возможные варианты:
auto
normal
start
end
center
stretch
baseline
first baseline
last baseline
главное, что стоит помнить про гриды:

- все их элементы по умолчанию имеют все выраванивания типа stretch и это часто бывает очень неудобно, так что можно сразу это сбрасывать
- из-за какого-то внутреннего бага все элементы грида имеют странные настройки min-width / min-height так что их тоже стоит сбрасывать
у нас на работке есть миксин:

display: grid; 

* > {
min-width: 0;
min-height: 0;
}
Forwarded from Про
How to use nulish coalescing with destructuring

const {a} = (b.c?.d?.e || {})
в субботу обнаружила, что путаю fifo и lifo

FIFO — first in, first out — это обычная очередь
LIFO — last in, first out — это stack (пачка карт например)
вторая часть учебника назвается «Браузер: документ, события, интерфейсы» и вообще не показалась мне интересной — либо всё то, что я уже знаю, либо информация, которую сложно использовать ирл

самая полезная статья — про ивенлуп, микротаски, макротаски, всё такое
https://learn.javascript.ru/event-loop
что такое макротаски и микротаски?

макротаск это setTimeout

микротаск это промис

сначала выполняется макротаск, потом все микротаски в очереди, потом другой макротаск (если он есть)

то есть порядок выполнения этого кода
Promise.resolve().then(() => console.log('first'))

setTimeout(() => {
console.log('second')
}, 0)


console.log('third')


будет такой
log: "third"


log: "first"


log: "second"
1. макротаск — запуск скрипта
2. синхронный код (third)
3. микротаск — промис(first)
4. следующий макротаск(second)
вроде всё понятно
но что еще является макротасками и микротасками кроме промисов и setTimeout?
[JavaScript] напишите функцию, которая вернёт n-ное самое большое число

largestN([2, 4, 1, 5, 3], 1) // 5
largestN([2, 4, 1, 5, 3], 2) // 4
largestN([1, 8, 3, 2], 4) // 1


сначала я написала:
const largestN = arr => Math.max(...arr)

а потом вчиталась в задачу — не самое большое число, а n-ное самое большое. то есть второе по большести или пятое по большести

второй вариант (работает как надо):
const largestN = (arr, index) => arr.sort((a, b) => -a - -b)[index - 1]
Я приостановила чтение учебника Кантора (прототипы в нем закончились, а остальное меня не интересует) и начала читать «Функциональное программирование на JavaScript» от Луиса Атенсио
и первое понятие, которое я не могу запомнить это лямбда-выражения (lambda expressions)

в джаваскрипте лямбда-выражением называется анонимная функция

самый распространённый пример это iife

второй по распространённости:
names.sort(function (a, b) {
if (a.name < b.name) {
return -1;
} else if (a.name > b.name) {
return 1;
} else {
return 0;
}
});
и очень часто в джс, когда говорят о лямбдах еще упоминают стрелочные функции
но это разные вещи
немного не по теме, но тоже важно

про cors
если запрос является сложным или/и имеет заголовки, отличные от стандартных, то сначала браузер делает preflight-реквест options для того чтобы найти allow-access-origin заголовки
и если он их нашёл и домен, с которого мы отправляем запрос, указан на сервере как разрешённый, после этого выполняется запрос, который мы посылали изначально

подробности: https://grishaev.me/cors/