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 Про
у меня много пет-проджектов и для каждого нужно настроить минимальную сборку
для книжки по функциональному программированию тоже захотелось иметь среду выполнения
конечно же create-react-app для этого случая слишком мощен (да и местный линтер меня раздражает), так что я взяла парсель и накрутила минимальной функциональности. В данном случае это — еслинт, рамбда и лоудаш
и всё бы хорошо, но вс код из коробки не умеет в динамические импорты, а без динамических импортов хочется только упасть и лежать. За них отвечает
так что я написала небольшую заметчк:
https://medium.com/@twanttobealighi/%D0%BA%D0%B0%D0%BA-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B8%D1%82%D1%8C-%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5-%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82%D1%8B-%D1%87%D0%B5%D1%80%D0%B5%D0%B7-babel-ceebc0bc7361
для книжки по функциональному программированию тоже захотелось иметь среду выполнения
конечно же create-react-app для этого случая слишком мощен (да и местный линтер меня раздражает), так что я взяла парсель и накрутила минимальной функциональности. В данном случае это — еслинт, рамбда и лоудаш
и всё бы хорошо, но вс код из коробки не умеет в динамические импорты, а без динамических импортов хочется только упасть и лежать. За них отвечает
babel со своими миллионами плагинов, которые с первого раза никогда не работаюттак что я написала небольшую заметчк:
https://medium.com/@twanttobealighi/%D0%BA%D0%B0%D0%BA-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B8%D1%82%D1%8C-%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5-%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82%D1%8B-%D1%87%D0%B5%D1%80%D0%B5%D0%B7-babel-ceebc0bc7361
Medium
Как настроить динамические импорты через babel
Устанавливаем зависимости
функция
обязательно нужно вернуть результат через
chain из lodash
позволяет применить много функций сразу для одного значения. каждой следующей функции передаёт результат предыдущейобязательно нужно вернуть результат через
.value()
пример:_.chain('mememe')
.capitalize()
.value();
//Mememe
пример посложнее:_.chain([36, 40, 1, 3, 1, 1, 1, 1])тут важно заметить, что uniq это тоже лоудашевская функция, доступная внутри
.sort((a, b) => a - b)
.uniq()
.value();
// [1, 3, 36, 40]
chain без _функция высшего порядка это функция, которая в качестве аргументов принимает другие функции или возвращает функцию в качестве результата
например
например
onEventListenerbutton.addEventListener("click", function() {
//do stuff
})декоратор это функция, которая расширяет функционал переданной ей функции
пример:
пример:
hoc — функция, которая принимает компонент и возвращает новый компонент с расширенным функционалом
то есть hoc это частный случай декоратора
https://reactjs.org/docs/higher-order-components.html
то есть hoc это частный случай декоратора
https://reactjs.org/docs/higher-order-components.html
legacy.reactjs.org
Higher-Order Components – React
A JavaScript library for building user interfaces