Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 24.11.2014, 21:58
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

bes,
Какой вопрос, я не люблю портянки читать. Сформулируй внятно и кратко.
Ответить с цитированием
  #22 (permalink)  
Старый 24.11.2014, 22:22
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от krutoy
bes,
Какой вопрос, я не люблю портянки читать. Сформулируй внятно и кратко.
объясни почему этот код не работает, ориентируясь на алгоритм, описанный в спецификации
1++;
Ответить с цитированием
  #23 (permalink)  
Старый 24.11.2014, 22:59
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

bes,
Нахрен мне сраная спецификация? Надо быть дебилом, чтобы не понимать, почему это не работает. Почему тогда это не работает
+++

А чо, пусть арифметическая операция инкрементируется, чем она хуже? Тебе, наверное, лекарство пора принять.
Ответить с цитированием
  #24 (permalink)  
Старый 24.11.2014, 23:29
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от krutoy
bes,
Нахрен мне сраная спецификация? Надо быть дебилом, чтобы не понимать, почему это не работает.
ну да, дебилы, когда видят, что это не работает, не понимают, что это не работает,
иногда, правда, объяснить могут - не работает

Сообщение от krutoy
Почему тогда это не работает
+++
здесь возможно немного проще
http://es5.javascript.ru/x7.html#x7
Цитата:
Исходный текст программы на ECMAScript предварительно преобразуется в последовательность входных элементов, которые представляют собой токены, символы окончания строки, комментарии или пробельные символы. Исходный текст анализируется слева направо, каждый раз принимая максимально возможную последовательность символов за следующий входной элемент.
то есть +++ будет расценено как ++ (префиксный оператор инкремента) и символ +
http://es5.javascript.ru/x11.html#x11.4.4
Цитата:
Для выполнения UnaryExpression : ++ UnaryExpression выполняются следующие шаги:
http://es5.javascript.ru/x11.html#x11.4
Цитата:
UnaryExpression :
PostfixExpression
delete UnaryExpression
void UnaryExpression
typeof UnaryExpression
++ UnaryExpression
-- UnaryExpression
+ UnaryExpression
- UnaryExpression
~ UnaryExpression
! UnaryExpression
и далее куда ни пойди, + не является допустимым входным элементом, к которому будет применяться данная синтаксическая грамматика, поэтому транслятор сообщает о появлении синтаксической ошибки
Ответить с цитированием
  #25 (permalink)  
Старый 24.11.2014, 23:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

подожду может кто-то обьяснит почему это не работает.
Ответить с цитированием
  #26 (permalink)  
Старый 24.11.2014, 23:32
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от krutoy
А чо, пусть арифметическая операция инкрементируется, чем она хуже? Тебе, наверное, лекарство пора принять.
а чо бы и нет, пусть инкрементируется: a ++ b - два раза сложить а и b
Ответить с цитированием
  #27 (permalink)  
Старый 25.11.2014, 00:15
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Сообщение от bes
а чо бы и нет, пусть инкрементируется: a ++ b - два раза сложить
Нет, ты не понял. инкремент -- это деструктивная операция, она меняет свой операнд. твой вшивый пример не в кассу. Это означало бы, что оператор плюс отныне будет означать двойное сложение, если уж развивать этот бред.
Ответить с цитированием
  #28 (permalink)  
Старый 25.11.2014, 08:23
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Токены-хуекины тут не стояли. Скалярное значение это не переменная. Запись 1++ означает абсурд, нонсенс, nonsense, бред укуренного стрептококка. Дизайн-тайм наезжает на рантайм и что вы лично bes предложили бы писателям интерпретатора чтобы развести этих братков?

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

Конкретная реализация реакции интерпретатора на свое "нипонял" - вообще не колебет.
Ответить с цитированием
  #29 (permalink)  
Старый 25.11.2014, 18:38
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от krutoy
Нет, ты не понял. инкремент -- это деструктивная операция, она меняет свой операнд. твой вшивый пример не в кассу. Это означало бы, что оператор плюс отныне будет означать двойное сложение, если уж развивать этот бред.
нет, ты снова не вкурил (инкремент --, который декремент, опустим):
можно писать всё, что угодно, лишь бы транслятор мог это выполнить, а ты понимал, к чему это приведёт,
как это всё будет интерпретироваться описано в спецификации, чтобы и другие это поняли также как и ты

хорошо, интуитивно вроде бы всем понятно, что 1++ работать не должно
кому не понятно, смотрит в консоль и убеждается - действительно, не работает

http://es5.javascript.ru/x11.html#x11.3.1
пункт 1 - описательный
числовой литерал в исходном тексте программы представляет собой неизменное значение и не создаёт ссылку (не типа Reference), поэтому пункт 2 проходим без проблем (было рассуждал на тему Точности перевода)
3, 4 - норма
затык на пункте 5
Цитата:
Вызвать PutValue(lhs, newValue).
http://es5.javascript.ru/x8.html#x8.7.2
Цитата:
1. Если Тип(V) не является Reference, сгенерировать исключение ReferenceError.
физический смысл простой: ++ в стакан может долить, а с закуски оно стекает
Ответить с цитированием
  #30 (permalink)  
Старый 25.11.2014, 18:39
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Вопрос 2: откуда NaN?
var a = function () {};
a++;
alert(a);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Инкремент при удалении элемента Ioan31 Элементы интерфейса 4 24.12.2012 15:52
Инкремент содержимого div astral Общие вопросы Javascript 3 02.07.2010 22:43