как разные движки отрисовывают изменение css-свойств
https://csstriggers.com/
да уж, от вебкита я ожидала большего...
https://csstriggers.com/
да уж, от вебкита я ожидала большего...
CSS Triggers
CSS Triggers List - What Kind of Changes You Can Make
Check out our ultimate list of CSS triggers and learn which changes you can make on your website and it will affect your properties.
Во многих статьях про анимации упоминается
Вот отличная статья с демкой о том как начать работать с
и вот расширенная статья — https://developers.google.com/web/tools/chrome-devtools/evaluate-performance/reference#record
Timeline panel, но в современных девтулзах её нет. В 58 версии хрома её объединили с JavaScript CPU profiler и перенесли в Performance panelВот отличная статья с демкой о том как начать работать с
Performance panel: https://developers.google.com/web/tools/chrome-devtools/evaluate-performanceи вот расширенная статья — https://developers.google.com/web/tools/chrome-devtools/evaluate-performance/reference#record
Chrome for Developers
Chrome DevTools | Chrome for Developers
Debug and optimize your web applications with Chrome DevTools.
Прошла курс от гугл про анимации (он классный и бесплатный) https://classroom.udacity.com/courses/ud860
единственный минус в том, что он был сделан в 2016 и с тех пор девтулзы изменились. Но после пары статей про вкладку
советую
итак, что же важного я узнала про анимации:
- анимировать
- анимировать
- анимировать только
- использовать
также следует помнить, что всё можно измерить
время для анимации на разных стадиях готовности приложения:
load 1000ms
idle 50ms
animation 10-12ms
response 100ms
на картинке — этапы обработки кода браузером
единственный минус в том, что он был сделан в 2016 и с тех пор девтулзы изменились. Но после пары статей про вкладку
performance я смогла перенести все измерения из девтулзов на видео в ирл девтулзысоветую
итак, что же важного я узнала про анимации:
- анимировать
width и height — плохо- анимировать
clip и clip-path — тоже плохо- анимировать только
transform и opacity — хорошо- использовать
will-change — хорошо, но не стоит увлекатьсятакже следует помнить, что всё можно измерить
время для анимации на разных стадиях готовности приложения:
load 1000ms
idle 50ms
animation 10-12ms
response 100ms
на картинке — этапы обработки кода браузером
В JavaScript есть только примитивы и объекты.
Типы примитивов: boolean, null, undefined, bigint, number, string, и symbol.
Отличием примитива от объекта является то, что примитивы не имеют свойств или методов. Тем не менее, 'foo'.toUpperCase() преобразуется в 'FOO' и не вызывает TypeError. Это происходит потому, что при попытке получения свойства или метода у примитива (например, строки), JavaScript неявно обернет примитив объектом, используя один из классов-оберток (например, String), а затем сразу же уничтожит обертку после вычисления выражения. Все примитивы кроме null и undefined ведут себя таким образом.
Типы примитивов: boolean, null, undefined, bigint, number, string, и symbol.
Отличием примитива от объекта является то, что примитивы не имеют свойств или методов. Тем не менее, 'foo'.toUpperCase() преобразуется в 'FOO' и не вызывает TypeError. Это происходит потому, что при попытке получения свойства или метода у примитива (например, строки), JavaScript неявно обернет примитив объектом, используя один из классов-оберток (например, String), а затем сразу же уничтожит обертку после вычисления выражения. Все примитивы кроме null и undefined ведут себя таким образом.
вторым параметром
- массив определяет набор свойств, включаемых в объект в окончательной строке
- функция принимает ключ-значение по ходу преобразования и может с ними взаимодействовать
JSON.stringify принимает replacer
replacer может быть массивом или функцией- массив определяет набор свойств, включаемых в объект в окончательной строке
- функция принимает ключ-значение по ходу преобразования и может с ними взаимодействовать
const settings = {
username: "anna",
level: 19,
health: 90
};
// массив
JSON.stringify(settings, ["level", "health"]);
// "{"level":19,"health":90}"
// функция
JSON.stringify(settings, (key, value) => {
if (typeof value === 'number') {
return undefined
}
return value;
});
// "{"username":"anna"}"Forwarded from kamyshev.code
Обретение навыков
Мне всегда казалось, что классическое программистское деление на junior-middle-senior достаточно бессмысленное: оно сильно разнится от компании к компании, конкретных критериев нет, часто превращается в инструмент вычисления зарплаты из опыта работы.
Недавно посмотрел доклад Обретение навыков, где рассказывается достаточно стройная система измерения уровня программиста. Посмотрите, это поможет объективно оценивать свой уровень и уровень своих коллег.
#рост
Мне всегда казалось, что классическое программистское деление на junior-middle-senior достаточно бессмысленное: оно сильно разнится от компании к компании, конкретных критериев нет, часто превращается в инструмент вычисления зарплаты из опыта работы.
Недавно посмотрел доклад Обретение навыков, где рассказывается достаточно стройная система измерения уровня программиста. Посмотрите, это поможет объективно оценивать свой уровень и уровень своих коллег.
#рост
YouTube
Обретение навыков / Никита Прокопов
Saint AppsConf 2019
21 и 22 октября 2019, Санкт-Петербург
Подробности и билеты на сайте https://appsconf.ru/spb/2019
AppsConf 2018
Зал «Зал 1. Мне с тобою хорошо»
9 октября, 17:00
Тезисы и презентация:
http://appsconf.ru/2018/abstracts/3675
Как люди…
21 и 22 октября 2019, Санкт-Петербург
Подробности и билеты на сайте https://appsconf.ru/spb/2019
AppsConf 2018
Зал «Зал 1. Мне с тобою хорошо»
9 октября, 17:00
Тезисы и презентация:
http://appsconf.ru/2018/abstracts/3675
Как люди…
различия
extends и implementsextends — расширение классаimplements — реализация классаС ключевым словом import все импортируемые модули являются pre-parsed. Это означает, что импортированные модули запускаются первыми, код в файле, который импортирует модуль, исполняется после.
В этом разница между require() в CommonJS и import! С помощью require() вы можете загружать зависимости по требованию во время выполнения кода. Если бы мы использовали require вместо import, в консоль были бы записаны running index.js, running sum.js, 3.
В этом разница между require() в CommonJS и import! С помощью require() вы можете загружать зависимости по требованию во время выполнения кода. Если бы мы использовали require вместо import, в консоль были бы записаны running index.js, running sum.js, 3.
разница
for in и for of
const arr = ['a', 'b', 'c', 'd']
for (let item of arr) {
console.log(item)
}
// a b c d
for (let item in arr) {
console.log(item)
}
// 0 1 2 3
статья про то как надо читать книги — не зацикливаться на одной непонятной, а фигачить сразу несколько с перерывами между
https://web.archive.org/web/20190308204248/https://ru.hexlet.io/blog/posts/how-to-read-books
https://web.archive.org/web/20190308204248/https://ru.hexlet.io/blog/posts/how-to-read-books
web.archive.org
Как эффективно читать профессиональную литературу - Блог - Hexlet
Читать книги важно. Не менее важно то, как происходит этот процесс. С одной стороны, не хочется пропустить важную информацию, с другой, попытка вникнуть и осознать каждое слово растягивает этот процесс до бесконечности. Ниже я опишу мой способ чтения. С большой…
https://youtu.be/omeYq2BGYTU?t=0
коллега скинул доклад, который произвел на меня сильное впечатление
это доклад про архитектуру фронтенда, а информации по этой теме вечно не хватает
очень хороший
коллега скинул доклад, который произвел на меня сильное впечатление
это доклад про архитектуру фронтенда, а информации по этой теме вечно не хватает
очень хороший
YouTube
MoscowJS 47 – Путь к разработке расширяемых интерфейсов – Ярослав Сергиевский
Хорошо, когда код каждой фичи изолирован. Но природа пользовательских интерфейсов такова, что различная функциональность визуально может переплетаться и проя...
code_notes
вторым параметром JSON.stringify принимает replacer replacer может быть массивом или функцией - массив определяет набор свойств, включаемых в объект в окончательной строке - функция принимает ключ-значение по ходу преобразования и может с ними взаимодействовать…
Хабр
5 малоизвестных возможностей JSON.stringify()
Доброго времени суток, друзья! В этой небольшой заметке я хочу рассказать вам о некоторых редко используемых возможностях JSON.stringify(). Возможно, они окажутся вам полезными....