As For JS
3.45K subscribers
123 photos
12 videos
4 files
358 links
As For JavaScript...
Обсуждения — @AsForJsTalks
Download Telegram
Лежу я значит вчера, морально готовлюсь к трансляции.

И тут вдруг рученьки не ручат, ноженьки не ножат. Зрение как прожектор. Звезды вокруг летают.

Ну думаю, лисица желает веселица. Настроение явно развлекательное. Сидеть с такой радостью самому - скучно. Я обратился к професионалам.

Приехали ко мне по вызову два чувака в халатах на голое тело. Сразу видно - тусовщики. Посмотрели они на меня, послушали да и говорят - ууууууууу тут нужно ехать в номера. Там как раз говорят необходимый уровень комфорта для вашего настроения.

Ну а я что против что-ли. Тем более карета у входа. Вынесли меня они как царя, включили светомузыку - поехали.

На входе в номера фейс контроль и очередь. Ну там чувак врубной был, бабульку какую-то из очереди подвинули, меня сразу пустил. Ну видно же что бабулька явно не на тусу.

Занесли меня в номера с стенами белоснежными. Приставили ко мне сразу консуматоршу. Она штаны с меня стянула да как вжарит что-то мне в левою ягодичку. Она до сих пор как кирпич.

Я ей - воу воу воу, полегче. Я даже как зовут вас не знаю. А она так хитро улыбается, и хреняк мне в правоую ягодичку.

Никогда не имел раньше, такого успеха у женщин если честно. Так она не останавливается, приперла вешалку на которую повесила пакет с чем то по цвету как вода целительная. Ну и шнуром мне сразу по вене.

Там я и уснул. Утром просыпаюсь - таже мамзель. А я ни имении ее не помню, ни что мы делали с ней ночью. Стыднооооо.

Она мне -как Вам все это? продлевать будете? Ну я чувствую что нормально все. Говорю спасибо. Нагулялся я.

Ну она и послала меня колидором к ресепшену, где мне оформили выписку и даже такси разрешили вызвать.

Откуда и писана эта история.
🙏73🔥19😁13👍108🤯1
Сегодня трансляции не будет.
Я не смог восстановится.
Извините.
🙏8622💔9👎1
Мы снова живы для наживы.
Сегодня понедельник 21-00 по Киеву

Тип String и его две основные проблемы. Часть 2 из 3.

Это вторая из трех лекций в которой мы разберемся с тем:
1) причем тут Unicode
2) что такое суррогатные пары
3) алгоритм преобразования Code Point к суррогатной паре UTF16 и наоборот
4) две проблемы типа String
5) как работают методы Exotic Object String при обработке строк

https://www.youtube.com/watch?v=DxvJVpn82vA
🔥329🙏3👍1😍1
Помогите девочке сохранить ее психику.

Обьясните ей, почему результат, в каждой части комикса, именно такой, а не иначе...


Отгадка:
Если используется оператор "+" и любой из аргументов является типом String, то всегда будет выполнятся конкатенация строк. Все прочее про то, что с чем и как конкатенирует.
То есть, блок 2 и блок 3 в комиксе, сразу же нам сообщает, что будет конкатенация строки, но не попытка что-то посчитать.
А уж конкатенация чего с чем - это уже второй вопрос.
😁264😍3
У дураков мысли сходятся.

Сегодня узнал, что идеи моего мега-продукта doPerDo, реализуют в Scala 3. И что во многом это уже есть в OCaml.

Конечно они додумались до этого без моей помощи. Тем не менее очень приятно, что у дураков мысли сходятся.

В 2035 году, все будут писать пользовательский код подобно doPerDo. Скриньте.
🤯114
44🔥21😁10👍3😍2💯2
От автора книги Чистый Кот
😁31🤣9🔥65👍2😍2
Только для подписчиков, от автора серии книг Чистый Кот и Совершенный Кот
😁44🔥16😎52😍2👍1
Diggy Diggy Deploy
@demimurych
Человек с ником Alex, папищик и настоящий упырь, крутил на пропеллере ИИ, в результате чего последний сделал две песни про

I am a dev and I’m pushing to prod ...
👍91
Сегодня в четверг, 22-00 по Киеву
String in wild. Часть 3 из 3.

Это заключительная лекция о String в JavaScript, в которой мы поговорим о:
1) нормализации строк
2) доступных нам методов контроля за наличием в них ошибок
3) посчитаем графемы, слова, предложения
4) проникнемся регулярными выражениями
5) заглянем под капот V8, с целью узнать а как у него там дела

https://www.youtube.com/watch?v=cYxohlw4mV0
🔥238😍1🐳1
#spec
Что такое Hoisting в рамках современной спецификации ECMAScript

Или что отвечать на собеседованиях.

Hoisting - это безграмотный жаргон закрепившийся в окружении JavaScript программистов, являющийся собирательным образом, для целой группы выражений таких как:
variable statement: var theVarThing = 1;
let/const declaration; let theLetThing = 2;
hoistable declaration ; function doThing() {};

и описывающий процесс, когда при формировании окружения, для выполнения кода функции, имена идентификаторов (theVarThing, theLetThing, doThing) которые используются этим окружением, должны быть заявлены в нем, ДО начала интерпретации кода.


Например:
function doThing() {
console.log( theThingA );
var theThingA = "AAAAAA";
}

Выполнение console.log не приводит к какой-либо, исключительной ситуации, потому что идентификатор theThingA уже был инициализирован значением undefined на момент старта интерпретации кода функции.

Именно этот процесс, и описывают безграмотным термином hoisting или всплытие.


Что говорит нам официальная спецификация
Официальная спецификация, содержит только один термин, с словосочетанием схожим со словом hoisting - это hoistable declaration.
Который касается только function declaration и только их. (В том числе производных, например генераторов_

Если бы, на уровне спецификации, существовал какой-то HOISTNG в той форме, в которой его спрашивают на собеседовании, то спецификация, обязана была бы включать в себя ВСЕ множество выражений - от var до function, а не только function.

В то же время спецификация описывает hoistable declaration СТРОГО КАК function declaration. Даже function expression не попадают под это определение.

Вместо ИГОГО
Никакого термина hoisting, в рамках официальной спецификации не существует, в той плоскости определения в которой его спрашивают на собеседовании. И никогда не существовало.

Есть группа выражений, содержащих ключевое слово function, поведение которых описано в спецификации под термом hoistable declaration. Под этим же термом нет И БЫТЬ не может никаких var let или const.

Процесс так называемого "всплытия", в спецификации, описан в стадии подготовки выполнения кода функции.
Подчеркиваю ПОДГОТОВКИ ВЫПОЛНЕНИЯ КОДА ФУНКЦИИ. той самой функции, которая оказывается hoistable declaration в том числе.


Краткий тезис -
если бы в спецификации был hoisting, как часть языка, то в нем бы описывалось все то, что привыкли спрашивать на собеседовании: var let const function

в то же время, в спецификации, есть термин hoistable который касается только function, и принципиально не может содержать var let или const.
👍33🔥149🤯3
Напишите если Вам не в лом, какие еще термины типичных собеседований, вам интересно чтобы я прокомментировал.

Например: this - как контекст, TDZ - как темпорал деад зоне и так далее...
🔥81👍1
#spec
Что такое макротаски (macrotask) в рамках современной спецификации ECMAScript.

В рамках спецификации ECMA, такого термина, или его производных - не существует и никогда не существовало.
Такой термин действительно был, но только в рамках спецификации HTML5, части, которая касалась EventLoop.

В настоящий момент времени, в раках стандарта HTML5 в его части EventLoopt, принято говорить о: Task Queue и microtask queue. Которые выполняют совершенно разные функции.

То есть, в былинные времена, термин маркотаски, описывал то, что сейчас описано спецификацией HTML5 как Task Queue. Или просто очередь задач.

При этом, существующий сейчас термин, вводит в заблуждение в той части, когда говорит про ОЧЕРЕДЬ.

Спецификация HTML5 прямо указывает, что это НЕ ОЧЕРЕДЬ,
Task queues are sets, not queues, because the event loop processing model grabs the first runnable task from the chosen queue, instead of dequeuing the first task.

не смотря на существующее название.


Первый промежуточный итог:
Термин макротаск - это термин который не имеет отношение к JavaScript.
Этот термин, использовался в прошлом, в формате спецификации HTML5.
В настоящий момент, этот термин не используется. Вместо него используется термин Task queues.
Про который нужно знать, что, не смотря на присуствие слова queue - он НЕ ОБОЗНАЧАЕТ очередь задач.
Но обозначает какой-то список, из которого значения могут браться в произвольном порядке. (превед свидетелям одно-поточного JavaScript)


Про что следует знать:
Согласно стандарту HMTL5, к каждому списку task queues, прикреплен microtask queue. Последний является именно очередью, которая, согласно спецификации, гарантирует порядок исполнения, в соответствии с порядком постановки в очередь.


Как это связано с JavaScript:
Это очень сложный основополагающий вопрос того, как в принципе обеспечивается работа языка JavaScript солгасно спецификации.
Если говорить в ОЧЕНЬ УПРОЩЕННОЙ форме, то для выполнения какого-либо JS кода, это код, нужно поставить как Task Queue. В процессе выполнения которой, некоторые из частей языка, например Promise, могут формировать задачи, которые попадают в MicroTask Queue.

Но при этом, неправильно думать, что эти термины касаются именно языка JavaScript, потому, что в форме спецификации ECMA эти же очереди, описаны иначе: Jobs Queue (которая так же не является очередью) и Promise Quueue.

Чтобы раскрыть связь терминов HTML5: TaskQueue / MicrotaskQuesu (спецификации HTML5) и GenericJob / PromiseJob нужен очень долгий разговор, поясняющий связ между имплементацией стандарта и HOST средой.


Вместо ИГОГО:
Когда речь заходит про что-то, что использует слово Task, первое что нужно уточнить - вы о каком стандарте говорите.
Так как в рамках ECMA, существование GenericJob и PromiseJob это одна разница, в то же время когда в HTML5 Task Queue и Microtask Queue совсем другая. Не смотря на то, что они могут сильно пересекаться.
🔥258👍4