As For JS
3.46K subscribers
123 photos
12 videos
4 files
357 links
As For JavaScript...
Обсуждения — @AsForJsTalks
Download Telegram
Сможете ли Вы переписать вот этот код
for (let i=0; i<3;i++) {
console.log("i:", i);
}

не используя фигурные {} скобки, но получив тот-же самый результат в консоли

Отгадка:
for (let i=0; i<3; console.log("i:", i),i++);
for (let i=0; i<3; i++,console.log("i:", i));
👍27💯4
а в одессе идет снег и я в тапках
🔥47😎13🤯4❤‍🔥3😁1😍1🐳1💔1
котярышника вам в ленту
75😍4👍3❤‍🔥2
За столом сидит гость
В голове у него гвоздь
Єто я его забил
Чтобы гость не уходил
👍16🌚13🤣6🔥3🤯2👌2😎1
Если у Вас есть кот - срочно скиньте его рожу в чат!
😁24😍4
Нет, я не ищу фармацевтическую глину - єто ты дебил решил что я єто делаю


шла 20 минута общения керамиста с чатом gemini
🤣21😁4🌚1
котярышников вам в ленту
54😍13❤‍🔥2
В чем существенная разница между кодом:

promise.resolve().then( 
    ( theVal ) => { /* якись код */ }
    , (theVal) => { /* якись код */ }
 );

и

promise.resolve().then( 
    ( theVal ) => { /* якись код */ }
 ).catch(
    ( theVal ) => { /* якись код */ }
);
🤯9👍4🌚2👌1
Тучарышника Вам в ленту
84❤‍🔥7😍5👍1👌1👨‍💻1
Кот в лаваше.
Єто не туча, єто сосед Мася.
53🔥10👍3
As For JS
В чем существенная разница между кодом: promise.resolve().then(      ( theVal ) => { /* якись код */ }     , (theVal) => { /* якись код */ }  ); и promise.resolve().then(      ( theVal ) => { /* якись код */ }  ).catch(     ( theVal ) => { /* якись код */…
Отгадка.

Разница в том, какой именно результат обслуживает catch.
В предложенном коде:
promise.resolve().then( 
( theVal ) => { /* якись код */ }
).catch(
( theVal ) => { /* якись код */ }
);

callback из catch обслуживает то, что вернет callback из предшествующего then. А это может быть что угодно - как resolved так и rejected promise так и pending promise.


В отличии от кода без catch:
promise.resolve().then( 
( theVal ) => { /* якись код */ }
, (theVal) => { /* якись код */ }
);

где реакция описанного в нем callback на rejected происходит по результату предшествующего ему кода (в нашем примере это результат работы resolve)


Иными словами, чтобы привести оба кода к состоянию когда они были бы эквивалентными по своей логике, следовало бы, для случая catch написать вот так:
var thePromise = promise.resolve();

thePromise.then(
( theVal ) => { /* якись код */ }
);

thePromise.catch(
( theVal ) => { /* якись код */ }
);



Почему это может быть для Вас важно.
1) Всегда следует помнить, что методы связанные с Promise совершают большую работу по формированию нового Object Promise. Эта работа много больше чем формирование обычного обьекта.

2) Методы принимают в качестве аргументов и возвращают в качестве результата ЛЮБЫЕ значения, от типа которых прямо зависит то, что происходит дальше.

Например
В следующем примере:
Promise.resolve().then( 
()=>{}
, ()=>{}
).catch(
()=>console.log('Rejected')
);

catch будет вызван только в случае если один из callback-ов описанных в then уровнем выше, вернет Promise.reject. Причем совершенно неважно будет это collback для resolved или rejected.
👍167🔥6👀1
хочу перезаписать видео про топ5 js мифов.

вот сегодня решил что нужно добавить - чейнинг

претенденты:
this - как контекст
event loop - єто js
null - как ошибка
переменные как коробочки


что я забыл?
что важнее?

UPD:
примитивные типы
var устарел

UPD2:
однопоточный JS

UPD3:
HOISTING, хостинг, всплытие

UPD4:
только promise попадает в очередь promise queue

UPD5:
TDZ

UPD6:
порядок приведения типов

UPD7:
передача параметров в функцию по ссылке и по значению
call stack

UPD8:
функциональные методы медленее for
js-классы синтаксический сахар
👍81🔥144
относительно дополнительных окружений, которые стали создаваться после появления let и const.


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

При єтом, агенту надежнее повторять архитектуру диктуемую спецификацией, так как єто гарантирует что при появлении чего-то нового в ней(спецификации), єто не вступит в противоречие с "особой" реализацией агента.


В случае создания дополнительных окружений, для обеспечения работы let/const на уровне block statement, авторы спецификации упоролись настолько, что єто перешло все допустимые рамки.

И, например, v8 игнорирует єтот аспект, рабоая так же, как он работал до єтого - функция имеет свое окружение все остальное от лукавого.

При єтом v8 предпринимает СВОИ шаги для обеспечения работы безобразия, названного let и const.

То есть v8 в нарушение спецификации никаких доп-окружений для блок стейтмент и случаев let/const не создает. Ибо нефиг.


Как єто делает v8 можно посмотреть в байткоде. Он делает єто просто, костыльно и гениально. Авторам спеки следует поучиться.
🔥189😍5👍3
Обязательно посмотрите єтот мультфильм.
Оригинальное название Straume
Для европейского рынка Flow

Єто чудо.

перевод неважен - там нет ни одного слова на человеческом.
👌3210🔥9😍2👍1🐳1
😁4518🤯5👎1😍1🤣1
туча мотивирует меня работать
49👨‍💻9👍6🙏2😍2😎2😁1
Кто угадает что в чашке, получит от меря прыз
👌6👀32
Други мои.

Я просмотрел ваши комментарии выше, и я горд тем что они именно в моем недочате.

Даже если я несогласен с ними, пользы от них, много больше чем в других чатах.

Спасибо Вам.
Вы стали/были крутыми.

Склоняю перед Вами голову.
40❤‍🔥5👍2👀2👌1😍1