As For JS
3.42K subscribers
134 photos
14 videos
4 files
379 links
As For JavaScript...
Обсуждения — @AsForJsTalks
Download Telegram
Я использую чат GPT как идеального переводчика.

Формируя главу о том, как исполняется код в JavaScript, мне потребовалось перевести часть спецификации 1997 года, о чем я и попросил чат GPT.
С переводом он справился прекрасно, после чего он предложил мне пояснить суть процесса, а именно что такое Execution Context. Я написал да.

Чат GPT мне рассказал как работает JavaScript на основании спецификации 1997 года. Только вот он сказал что так работает современный JavaScript.

Проблема в том, что в современной спецификации как термин Execution Context, так и сам процесс исполнения кода, в сравнении с первой версией спецификации - отличается как эскимос от папуаса.

Не тем как он эволюционировал, но архитектурно - то есть он совсем другой, он работает принципиально иначе. Как и термин Execution Context, в современной спецификации, используется совершенно в иных условиях.

Та же история, была и есть с термином Lexical Environment.


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

Ну как в физике про планетарную модель атома. Вы же знаете что электроны по орбитам атома не летают? То есть представление Атома в качестве планетарной модели - не отражает дейтсвительности. Тем не менее термин сохранился и до сих пор представлен в виде логотипа МАГАТЭ.

https://www.youtube.com/watch?v=LxHdzGDazXg
👍2213👀4🤯1
До сих пор сохранились люди, которые рассказывают о том, что существует отдельно JavaScript и отдельно ECMAScript. И что дескать JavaScript это реализация ECMAScript.

Я Вас очень прошу, отправляйте этим людям вот эту ссылку из официальной документации стандарта HTML5

The term "JavaScript" is used to refer to ECMA-262, rather than the official term ECMAScript, since the term JavaScript is more widely known.

Ибо заебали больного человека.
😁16🙏84🕊2
В продолжение темы про GPT и его пояснений процессу.

Меня дико увлекло общение с ним по вопросам где, как мне казалось, я что-то понимаю.

В рамках этой темы, есть один вопрос на который я лично не знаю ответа:
Каким образом в спецификации HTML5 используется манипулирование Execution Context Stack если это машинерия не может быть доступна извне, так как является исключительным артефактом спецификации ECMA.

То есть - никто другой кроме самой ECMA спецификации оперировать этим не может, если не предоставлен некоторый внешний HOOK для реализации операцией с ней. (Например hook InitializeHostDefinedRealm формирует родительское окружение для исполнение JS кода)

При этом, ни одного хука для работы с Execution context stack в спецификации нет. И тем не менее в спецификации HTML5 есть прямое оперирование Execution Context Stack-ом.

Перечитав тонны документации и не найдя даже намека на ответ, я решил спросить GPT. На что он мне ответил -
Хотя спецификация HTML требует от хоста выполнить шаг "push onto the JavaScript execution context stack", на практике это означает, что хост должен инициировать выполнение скрипта, а движок JavaScript сам управляет своим внутренним стеком контекстов выполнения.

Это не противоречие, а разрыв интерфейса между спецификациями.


После чего добавил:
Если тебе интересно, я могу предоставить конкретные ссылки на обсуждения или исходный код, где реализуется этот процесс.

Я сказал да.

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

Я в диком ахуе от того, как вообще кто-то может полагаться на этот(GPT) механизм, как на тот, который что-то может написать, что потом можно использовать в продакшине.
🤣9👍8💯4🔥2😁1
#муризмы

Люди делятся на три типа:
1. Те КТО использует GPT
2. Те КОГО использует GPT
3. И те, кто уверен, что они используют GPT, а не наоборот.

Последних доминирующее большинство.

Еще есть те, кто к нему вообще не прикасаются. Но то нелюди.
🤣21🤯11👍6💯3👀21👨‍💻1
Как вы думаете, есть ли разница между

var theArray = [ "odin" , "dva" , "tri" ];
var theIndex = 1n;
console.log ( theArray [ theIndex ] );

и
var theArray = [ "odin" , "dva" , "tri" ];
var theIndex = 1;
console.log ( theArray [ theIndex ] );


Обратите внимание на то, что theIndex в первом случае связан с BigInt. В то время как во втором случае он связан с Number.
1
Есть ли разница в адресации Array между Bigint и Nubmer? Смотри пример выше
Anonymous Quiz
23%
Да
24%
Нет
23%
Тут есть ньюансы
31%
Я упырь
1
Гимн всея JS программирования:

I am a dev and I'm pushing to prod
Script-y script-y god, script-y script-y god
I am a dev and I'm pushing to prod
Script-y script-y god, pushing to prod

I am a dev and I'm writing a code
Writing writing code, writing writing code,
I am a dev and I'm writing code
writing code, then pushing to prod

https://www.youtube.com/watch?v=ytWz0qVvBZ0
👍7🙏21
#муризмы

Вкладка, которая отжирает 100500 памяти из-за того, что кто-то не умеет писать JS код - это зашквар.
💯24👍31😁1
#муризмы

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

Или
Разница между программистом и программой в том, что программа масштабируется, а программист нет.
😁19🤯4💯31
в 2011 году, в крыму, мы рассуждали о том, какой текст будет самым привлекательным в веб...

єтот ржач родил формулу: красное, жирное, наклоненное, подчеркнутое.

а теперь посмотрите на текущее евровидиние.


обнимаю и люблю всех с кем я был в те годы
😁151
мой кот.
с которым мы обязательно снова увидимся.
❤‍🔥8126💔16🕊6👍2😍2🔥1💯1
Знаете как найти настоящего харковчанина?

спросите у него что такое тремпель и дєберц.

климов подвердит.
👍16😁81
ты обещала держать меня за руку
👀18💔6🙏51
(
()=>{
"use strict";
var doAddToFive = (
(theAddends) => {
return 5
++theAddends;
}
);

console.log( doAddToFive(1), doAddToFive("2") );
}
)();
1
Что будет в консоли
Anonymous Quiz
10%
6 7
10%
6 "52"
40%
5 5
15%
Syntax Error
25%
Я упырь
👍101
Сегодня мои друзья которые все, как один верят в мое выздоровление, прислали мне на утверждение макет памятника.

Что думаете?
40🔥24👍9🤣6💔2❤‍🔥1💯1
А Вы заметили,
что, если, одно и тоже задание, публиковать несколько раз подряд, то, в то время когда,
количество неправильных ответов - сокращается, количество упырей - увеличивается?

знание - это упырь.
😁31🤣134🔥1
Завтра, в пятницу - стрим до последнего вопроса

Завтра, в пятницу (19-00 по Киеву) , я запланировал большой стрим, потому как мне нужны срочно деньги.

Вопрос, какие нужны вам/там темы?

Например:
1) есть ли области видимости в JS
2) что такое асинхронность в JS
3) имеет ли отношение CallStack к JS
4) Генераторы как способ решения задач с рекурсией без получение сообщение об ошибки про CallStack
5) SharedArrayBuffer
6) любой другой ваш


Вопросы с донатом получают/имеют наивысший приоритет.

То, кто донатил ранее - имеют наивысший приоритет.


Писать вопросы можно сюда,

или шлите их с донатом на:
Карта Приват (Bobrov Maksym):
5168745021397333

Карта Mono (Вієр):
4441111136675646

USDT Tron (TRC20): TKoZu59WHiX6L6qvwYTYTsZJerDrnAHBTx

USDT etherium (erc20): 0x75fb8a62dfcf453b2e73f1ef1c407d46f918fffa

TON: UQAGXvuhxg3qU0eFgOxtdDlKXqdp1zPq6yCRSRbRYQClxOzH

bitcoin:
bc1q74aru82v4d3alay7p53jdwkmxe4a5gz7fmvfm2?message=AsForJS&time=1686349743

PayPal: demimurych@protonmail.com
Boosty: https://boosty.to/asforjs


ссылка на будущий стрим
👍2212
JavaScript - это уникальное явление, где программист может существовать сразу в трех реальностях:


Первая - это то, что программист думает про свой код.

Вторая - это то, что про свой код следует рассказать на собеседовании.

И третья - это то, как этот код работает на самом деле.

И вопреки всей этой регулярной шизофрении - сам код возвращает ожидаемый результат.
👍31😁16❤‍🔥3🤣3🕊2💯2💔1