Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   return {блок} (https://javascript.ru/forum/misc/43437-return-%7Bblok%7D.html)

Maxmaxmaximus3 05.12.2013 17:59

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

return 1,2,3; вернет 3;
return {1+2; 3+4}; должно по идее вернуть 7 но парсер думает что мы декларируем обьект и кидает ошибку =)

Я считаю это глупостью, и я считаю что ни какой неоднозначности нет, парсер способен отличить декларацию обьекта от блока =) по крайней мере я бы сделал такой парсер.

Arramis 05.12.2013 18:01

Цитата:

Сообщение от Maxmaxmaximus3 (Сообщение 284779)
это как ретурн принимает блоки, только наоборот, глупенький =)

извини, но я твой инопланетный язык не понимаю вообще ни в какую, как может ретурн что то принимать ??? это интструкция для возврата результата(в js любое корректное выражение) выполнения функции. return означает возвращать а не принимать.

ksa 05.12.2013 18:34

Цитата:

Сообщение от Maxmaxmaximus3 (Сообщение 284779)
всему тебя учить =)
alert( eval('{1+2}') )

ивал возвращает результат последнего выражения ...

У автора был ивал? :D

alert({2+1});

Цитата:

Syntax error at line 13 while loading: syntax error
alert({2+1});
--------^

ksa 05.12.2013 18:35

Цитата:

Сообщение от Maxmaxmaximus3
и если честно то я считаю это ошибкой

Я патсталом... :lol:

Цитата:

Сообщение от Maxmaxmaximus3
return {1+2; 3+4}; должно по идее вернуть 7 но парсер думает что мы декларируем обьект и кидает ошибку =)

Т.е. вся твоя логика и знание идут в лес... :lol:

ksa 05.12.2013 18:38

Цитата:

Сообщение от Maxmaxmaximus3
Я считаю это глупостью, и я считаю что ни какой неоднозначности нет, парсер способен отличить декларацию обьекта от блока =) по крайней мере я бы сделал такой парсер.

Ну тут диагноз однозначно...

Maxmaxmaximus3 05.12.2013 19:00

Цитата:

Сообщение от ksa
У автора был ивал?

нет
Цитата:

Сообщение от ksa
Я патсталом...

почему?
Цитата:

Сообщение от ksa
Ну тут диагноз однозначно...

какой диагноз? чо ты несешь, поехавший?

Цитата:

Сообщение от Arramis
как может ретурн что то принимать

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

Цитата:

Сообщение от Arramis
return означает возвращать а не принимать.

оо, вон оно как.. буду знать, спасибо =)


У меня начинает создаваться впечатление что обитатели этого форума на столько тупые что за исключением 1-3 человек даже не понимают о чем я говорю =) ну то есть они на столько технически не грамотные, что вещи о которых я им говорю им кажутся магией, или я не прав?


Цитата:

Сообщение от Arramis
извини, но я твой инопланетный язык не понимаю вообще ни в какую, как может ретурн что то принимать ??? это интструкция для возврата результата(в js любое корректное выражение) выполнения функции. return означает возвращать а не принимать.

если честно я в голос проиграл )))))

Это называется дядя Леша зашел в раздел общи вопросов где новички сидят :)

ksa, чувак, ладно он, но я не думал что ТЫ такой нуб.. Не, ну правда... Сравни карму свою и мою. Как так можно то?

А это вам нубам на закуску =)





дело в том что блоки не могут участвовать в выражениях, из за возможности перепутать их с обектами =) но я считаю что там неоднозначности нет и я бы написал такой парсер который бы корректно хавал это =)

Вот кстати вам еще один пример некорректного парсинга:



Грубо говоря они прописали правило "блоки не могут учавствовать в выражениях" и он думает что {34} + 11 это {34}; +11

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

Maxmaxmaximus3 05.12.2013 20:00

Ну чо, куда вы подевались то)? Я хочу наслаждаться вашими глазами сфоткайте пожалуйста ваши лица ^__^ я хочу на них посмотреть щас.

Arramis 05.12.2013 20:26

Maxmaxmaximus3
ты своими фанатическими домыслами не сумеешь ниче тут доказать/опровергнуть.
Специально ради тебя полез в стандарт ecma проверить инструкцию return.
return statement. Там не говорится что return принимает данные и точка. return возращает, принимая результат выполнения функции. Важен конечный результат инструкции, а не начальный. Иди своим колхозным подходом студентов однокурсников запугивай.

Maxmaxmaximus3 05.12.2013 20:33

я не понял твою мысль, я что-то не так говорю что не является правдой? ВОПРОС: что?

Arramis 05.12.2013 20:36

Maxmaxmaximus3,
твои слова не имеют практического значения


Часовой пояс GMT +3, время: 07:50.