TGViewer
Channel Public Channel
As For JS

As For JS

@asforjavascript

As For JavaScript...
Обсуждения — @AsForJsTalks
Subscribers
3.08K
Photos
313
Videos
29
Links
633

Showing posts older than #1305 · Back to latest

Older Posts 15 shown
Post #1304 2.02K
Чувакам из дружественного сопредельного государства, показалось мало лишить людей света.

Они решили Одессу лишить воды.

Если у кого есть контакты - расскажите тем дебилам, что єто только увеличивает желание послать именно их курсом русского военного корабля.

Пользуйтесь курортами вашего йух-а.
  • 💯 50
  • 👍 2
  • 👌 2
  • 🕊 2
  • ❤ 1
  • 😁 1
  • 🤯 1
Post #1303 1.91K
А вы знаете почему ваши родители так волнуются за то в шапке ли вы?

и при чем тут джабаСкрипт
  • 👍 7
  • 👀 1
Post #1302 2.04K
Спасибо Вам за котов.
посчитали - вы собрали чуть больше 70 000 гривен.

Єто около 1500 дол.


я Вам очень благодарен.
  • ❤ 32
  • 🔥 7
  • 🕊 2
Post #1301 2K
а вот вы сразу на вскидку скажете какой размер у Array в js максимальный?

я вот все время путаю
Post #1299 2.16K
Упыри мои дорогие.
Помните просьбу о лишних гривнах приюту?

Вот Вам ответ

Спасибо Вам
  • ❤ 38
  • 🙏 8
Post #1298 1.85K
Сломали стул
Протырырынькали свет
Лежим
Ждем
  • 🙏 24
  • ❤ 18
  • 🕊 4
  • ❤‍🔥 3
  • 🌚 1
Post #1297 2K
Post #1296 1.72K
Тема вопроса: "Передача значения по значению и по ссылке"
Итак JS понятия передачи по значению и по ссылке - нету или назвать сложно

Его именно НЕТ.
Спецификация ECMA не занимается тем, что регламентирует работу с памятью или способами представления этих структур данных в памяти.

Спецификация ECMA не может дать ответа на этот вопрос ПРИНЦИПИАЛЬНО.

Мы можем, опираясь на описание поведений для тех или иных statement или expression и для себя сделать вывод, - как бы для конкретной реализации языка (v8, Chakra, и т.д.) на основе данной спецификации было бы проще это реализовать.


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

А это значит, что если мы рассуждаем именно о ЯЗЫКЕ JavaScript - то мы НЕ ИМЕЕМ НИКАКОГО ПРАВА утверждать что в языке JS существует передача по ссылке или по значению. Просто потому, что в ней нет ничего и не может быть ничего что могло бы регламентировать эту работу.

И максимум о чем мы можем судить - КАК спецификация реализована в конкретном коде (например V8).

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


Разберем эти два направления: как реализовано в V8 и как мы можем интерпретировать спецификацию.

Начнем с ECMA.
В спецификации ECMA, любая передача чего-то куда, то управляется двумя конструкциями Reference Record и описанием взаимодейтсвия с ней. (Слово Reference ужу должно напрягать).
Где доступ к данным, выполняется через абстрактную операцию GetValue. Иными словами ни о каком разговоре о интерпретации этого как доступа по значению и мысли быть не может.

Потому как получить данные нельзя без вызова абстракции.

И описанием поведения инструкция let и set (не путайте с let в JS. Это разные вещи). Где в описании (ECMA ) инструкции let прямо написано
Algorithm steps may declare named aliases for any value using the form “Let x be someValue”. These aliases are reference-like in that both x and someValue refer to the same underlying data and modifications to either are visible to both.

Algorithm steps that want to avoid this reference-like behaviour

should explicitly make a copy of the right-hand side: “Let x be a copy of someValue” creates a shallow copy of someValue.
Вместо ИГОГО по части спецификации ECMA
передача чего-то по значению, принципиально невозможна, кроме случаев указанных для be a copy. Которые касаются особых поведений для Shared Array или Typed Array.

А именно меньше 1% спецификации. Или того, чем Вы в большистве своем никогда не пользуетесь. То есть того что не касается "традиционного JavaScript"


Дальше берем конкретную реализацию ECMA спецификации, а именно самую ее популярную и развитую - V8.

Где по умолчанию ВСЕ данные в JS являются Object. И исключением являются только особые случаи оптимизации поведения, когда reference может вместо самого себя как value разместить SMI или Floating Point Value.

что является частной оптимизацией поведения конкретно реализации.


ИГОГО
Как на уровне спецификации языка, так и на уровне ее реализации и речи не может идти о интерпретациях вида: передачи чего то по ссылке и чего-то по значению.

Это же можно обозначить еще и другим примером:

Если для Вас передача по значению, это работа с Primitive Value, то обьясните мне и себе каким образом передаются Symbol или BigInt.

Которые являются чистыми абстракциями, то есть никаких реальных Value на уровне реализации в машинном коде, иметь не могут.

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

https://t.me/AsForJsTalks/251239
v8.dev The story of a V8 performance cliff in React · V8 This article describes how V8 chooses optimal in-memory representations for various JavaScript values, and how that impacts the shape machinery — all of which helps explain a recent V8 performance cliff in React core.
  • 🔥 8
  • 🙏 4
  • ❤ 3
Post #1295 1.81K
Забыли пока про стримлинг до 00.
Добрый брацкий народ учит его любить путем лишений тепла и напряжения.

Они большие молодцы.
  • 👍 17
  • 💔 10
  • 🤯 6
  • 🌚 1
Post #1290 2.05K
Друзья упыри мои родные.

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

Я знаю єтого человека лично и ручаюсь за него.

Если там есть где указать - напишите от нашего упырьского сообщества

Из банки вынимают сейчас по надобности. Всего упыри накидали около 25000 гривен.

Спасибо Вам. Большое.
Мне очень повезло,
что Вы тут такие
,
Упыри безобразные

https://send.monobank.ua/jar/AF3gUPjyMn?utm_source=ig&utm_medium=social&utm_content=link_in_bio&fbclid=PAZXh0bgNhZW0CMTEAc3J0YwZhcHBfaWQPNTY3MDY3MzQzMzUyNDI3AAGnl5N_DqF6ejIV-_0Bbj2X05XN1MaMupuLTg5V3LL266EqXQ_OPyrJhMmAMAQ_aem_rM-soNDWLjhJiWQMQmCXjw
  • ❤ 22
  • 🔥 4
  • 🕊 1
Post #1289 1.84K
Камилла Мораес (Camilla Moraes), менеджер по продукту из компании GitHub, начала обсуждение добавления в GitHub возможности для автоматической блокировки мусорных pull-запросов, сгенерированных в AI-ассистентах, отправленных без ручной проверки и не соответствующих требованиям качества. Подобные изменения создают дополнительную нагрузку на сопровождающих, которые вынуждены тратить время на разбор бесполезного кода.
  • 👍 39
  • ❤‍🔥 2
  • 👨‍💻 1
Post #1288 1.87K
Post #1286 1.87K
Post #1284 1.7K
одесса, через стекла єтажей
  • ❤ 22
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →