все возможные варианты:
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
самая полезная статья — про ивенлуп, микротаски, макротаски, всё такое
https://learn.javascript.ru/event-loop
learn.javascript.ru
Событийный цикл: микрозадачи и макрозадачи
что такое макротаски и микротаски?
макротаск это
микротаск это промис
сначала выполняется макротаск, потом все микротаски в очереди, потом другой макротаск (если он есть)
то есть порядок выполнения этого кода
будет такой
макротаск это
setTimeoutмикротаск это промис
сначала выполняется макротаск, потом все микротаски в очереди, потом другой макротаск (если он есть)
то есть порядок выполнения этого кода
Promise.resolve().then(() => console.log('first'))
setTimeout(() => {
console.log('second')
}, 0)
console.log('third')будет такой
log: "third"
log: "first"
log: "second"
1. макротаск — запуск скрипта
2. синхронный код (
3. микротаск — промис(
4. следующий макротаск(
2. синхронный код (
third)3. микротаск — промис(
first)4. следующий макротаск(
second)вроде всё понятно
но что еще является макротасками и микротасками кроме промисов и
но что еще является макротасками и микротасками кроме промисов и
setTimeout?читайте дальше в этом канале после того как я посмотрю доклад Ивана Тулупа
https://habr.com/ru/company/oleg-bunin/blog/417461/?_ga=2.168408545.1795064703.1569303890-521919562.1565182091
https://habr.com/ru/company/oleg-bunin/blog/417461/?_ga=2.168408545.1795064703.1569303890-521919562.1565182091
Хабр
Иван Тулуп: асинхронщина в JS под капотом
А вы знакомы с Иваном Тулупом? Скорее всего да, просто вы еще не знаете, что это за человек, и что о состоянии его сердечно-сосудистой системы нужно очень заботи...
[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
второй по распространённости:
в джаваскрипте лямбда-выражением называется анонимная функция
самый распространённый пример это 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
если запрос является сложным или/и имеет заголовки, отличные от стандартных, то сначала браузер делает
и если он их нашёл и домен, с которого мы отправляем запрос, указан на сервере как разрешённый, после этого выполняется запрос, который мы посылали изначально
подробности: https://grishaev.me/cors/
про cors
если запрос является сложным или/и имеет заголовки, отличные от стандартных, то сначала браузер делает
preflight-реквест options для того чтобы найти allow-access-origin заголовкии если он их нашёл и домен, с которого мы отправляем запрос, указан на сервере как разрешённый, после этого выполняется запрос, который мы посылали изначально
подробности: https://grishaev.me/cors/
grishaev.me
Руководство по кросс-доменным запросам (CORS)
На прошлой неделе я внедрял в проект CORS-запросы – современный способкросс-доменного Аякса. По следам прочитанной документации и набитых шишекподготовил неб...
скалярные типы переменных это то же самое что и простые типы переменных
то есть это строка, число, булин
то есть это строка, число, булин
Object.freeze замораживает только первый уровень свойств(мм джаваскрипт)
class Person {
constructor(name, hobby) {
this.name = name
this.hobby = hobby
}
sayHi() {
return `hello, my name is ${this.name}`
}
}
const person = Object.freeze(new Person('dasha', {label: 'poetry'}))
person.name = 'masha'
console.log(person.name) //dasha
person.hobby.label = 'skiing'
console.log(person.hobby.label) //skiingне могла найти файл конфигурации постгреса, но получилось через
mdfind pg_hba.conf
Forwarded from Про