As For JS
3.45K subscribers
126 photos
12 videos
4 files
362 links
As For JavaScript...
Обсуждения — @AsForJsTalks
Download Telegram
Если хочется о чем то подумать.

Попробуйте создать такой обьект Say, поведение которого бы отвечало тому, что на скриншоте:

любая цепочка обращения к проперти приводит к возвращению строки из имен этих проперти.
🔥17❤‍🔥1👀1
Усик.
5 раунд.
чемп.

Слава Україні.
🔥7911👎4🤣4😁3❤‍🔥1🤯1🙏1😍1
😁35👍64🐳2🤯1
Что будет отображено в консоли при выполнении следующего кода:

var theSym = Symbol("abc");
console.log( theSym );
console.log( `${theSym}` );


тем кому слишком просто, задачка со звездочкой - почему происходит именно так
Пояснения относительно задачи про Symbol.

Короткий ответ:
console.log - это внешнее API, которое не обязано подчинятся спецификации ECMA.
Описание того, как и что именно, может делать метод log обьекта console содрежится в спецификации HTML5.

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


Длинный ответ:
Чтобы легко ориентироваться в том, как работает JS - нужно помнить три простых принципа:

1) JS это язык, в котором нет своего ввода/вывода. Любое получение данных или отображение данных, зависит не от языка JS. и может быть каким угодно, в зависимости от того, как работает внешнее API

2) механизм прототипного наследования, которым пронизана вся спецификация (для нашего случая сейчас не принципиален)

3) каждый statement разбирается на выражения, которые выполняются согласно алгоритму заявленному спецификацией.
то есть когда Вы смотрите на строку кода, то в ней НЕТ НИЧЕГО чтобы не прошло через какой то алгоритм.

даже когда вы пишите просто число 1 - то это не данные, это statement который приводит к тому, что возвращается ссылка на что-то что описывает данные.


var theSym = Symbol("abc");
console.log( theSym );

в строке с console.log у нас несколько частей, которые пройдут работу согласно алгоритмам спецификации:
1) console.log - получение ссылки на метод
2) ( ) - callable expression, то есть вызов чего то с чем то
3) идентификатор theSym - получение ссылки на структуру данных связанной с идентификатором theSym

Если кратко - вызов внешнего API log, внешнего обьекта console, передав ему ссылку на то, что связано с идентификатором theSym.

Результат? - в душе не тилельнкаю, потому, что это внешнее API которое может делать чем ему вздумается.


Вторая часть
console.log( `${theSym}` );

отличается от первой тем, что идентификатор theSym проходит через еще один этап вычисления выражения (алгоритма спецификации ECMA). Который требует вызов метода toString применимого к идентификатору, из-за использования темплейт литерал.

Согласно которому, в случае типа Symbol, должно быть throw.


Вместо ИГОГО:
Сталкиваясь с любым поведением, которое вас ставит в тупик, первое что сделайте - разделите где сам язык JS, который регламентируется ECMA Spec, а где вызов внешнего API.

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

То есть разница в выводе заявленной задачи, оьясняется тем, что метод log обьекта console, а точнее те кто его реализовывал в Google Chrome, сделали так как им удобно. Вопреки тому, что диктует спецификация
16🔥6👍2😍2
Смотрите по сторонам.
Не пропускайте жизнь которая идет вокруг Вас.
Те кто умеет єто делать и становятся счастливыми людьми.

https://www.youtube.com/watch?v=5wrwcEZ3Btw
11❤‍🔥3👍1😍1👀1
время прохладных историй:
Как Мурыч не стал Google Expert-ом

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

В течении года, на одном из профильных форумов (Вы не знали что такие есть?), активно давать "правильные" ответы.

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

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

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

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

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

Среди таких номинантов, получивших имя, есть люди которые не написали НИ ОДНОЙ СТРОЧКИ КОДА.

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

Вот такой он молодец. ( Для тех кто не понимает языка иронии от Мурыча - это было именно он).


Важное ПыСы:
Можно получить и иначе. Например писать какие-то одобряемые статьи. Только это все равно ничего не меняет с учетом всего того, что выше.

Такие вот они Google иксперты.
Люди со звездами на GitHub обладают большей доказанной экспертизой.
🤯168👍7🤣3🔥2
Задача для тех кому нечем заняться.
Object String или задача с двумя подводными камнями.

Оценим обьект, который создан при помощи конструктора String.
Воспользуемся для этого любым доступным инструментом:
console.dir( new String("abc") );

развернув сформированный вывод для созданного обьекта String, мы увидим три ключа: 0, 1, 2 каждый из которых связан с соответствующей буквой: a, b, с

Вопрос:
Согласно ECMA, чем является каждое из этих property? Самостоятельной строкой или нет?
👍3👨‍💻1
Ушел на радугу легендарный рестлер Халк Хоган.
На ринге он был столько, сколько я живу с 1977 года.

https://www.youtube.com/watch?v=zUeMku7GO74
💔36🕊3
Forwarded from Ruslan
Из всего айти отдела вайбовал один лишь я.
У меня Курсор с подпиской, я довольный как свинья.
Мой папанька инженером отбатрачил тридцать лет,
А сейчас в анкетах пишет что детей у него нет

Я теперь на таски скор - у меня же есть Курсор.
Я на нём вайб код лабаю всем олдам наперекор.
Любой челендж для меня нынче полная фигня.
А-а-а!! Вайбовый кодер я!


На меня техлид-собака матерится каждый день,
Обзывает говнокодом, косо смотрит, старый пень.
Мёрдж риквесты не пускает, ничего, что я вношу,
Всё за то, что я с Курсором в лучших практиках пишу.

Разгоняет злую ложь, что с лапшою код мой схож.
Да и что в этом плохого? Коль работает - не трожь.
Но коллеги и друзья презирают все меня.
А-а-а!! Вайбовый кодер я!


Нахрен брошу ту контору и поеду во Фремонт,
За свово меня там примут, ведь в почете там вайб код.
Осную стартапов кучу, заработаю бабла,
И маманька бросит плакать, что такого родила.

Всё, покедова, друзья, не кляните вы меня.
Вам подарок с чистым сердцем напоследок сделал я:
Во все репы от души лучших практик наложил.
А-а-а!! Вайбовый кодер я!
🤣4213🔥4😁2🤯2
Вайбкодер
@demimurych & Ruslan
🔥11🤣3
Я хочу Вам рассказать про людей, которые делают сборы.

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

Это про тех людей, которые отдали все что у них есть, от машины до своего комфорта, зарабатывая не меньше чем те кто покупают самокат и сильно переживают про то, что попали в ДТП при страховке, которая оплачивает им 100% компенсации, вне зависимости от вины водилы самоката.

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

Но не ошибетесь, что я считаю гидотой тех, кто на фоне этого начинают выпячивать это свое место.

Потому, что у меня перед глазами те люди, которые зарабатывая не меньше - отдали все на те же сборы и отдают все, что у них есть. А не только тем что не жалко. Они первые кто жертвуют ВСЕМ.

Эти люди делают добро и бросают его в воду, даже тогда когда их семьи страдают от этого.

Это и Никита Птица, который зарабатывает много и с диагнозом который требует обязательного лечения, сам лично закрывает своими деньгами сборы. ВСЕМИ своими деньгами.

Это и V@L который зарабатывает много меньше, но отдаст все, лишь бы спасти человека. И тот кто меня называет Вуйко, который без работы, но отправит людям последние 100 дол. Я не про себя. Я про то какие Они. Люди. Тимурычи, Никтичиы, Валычи, Вуковичи, Катеринычи ...

И Вы никогда от них не услышите, про беду на треке, или про свой пенсионный фонд.

Это люди с большой буквы.

И ругайте меня сколько хотите за эти слова. Только вот именно они(эти люди) сделают и никогда об этому никому не скажут.

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

И это вызывает мое безмерное уважение.

Я склоняю голову перед такими людьми.

Делай добро и бросай его в воду.
👍2210🤯2🕊2🔥1🤣1
Forwarded from wp0 .li 🐸
😁24🔥178
As For JS pinned a voice message
в маршрутках - иконостас.
а у меня ноутбук и котостас.
17🤣5👍3
Если Вам очень очень грустно и Вы уже смотрели мультфильм Лило и Стич - посмотрите теперь кино Лило и Стич 2025.

Охана - значит семья.

Там и про JS тоже есть.
17😁5