Сообщение от bes
|
Можно пояснить, как получить такой вывод из спецификации
|
При вычислении LeftHandSideExpression [no LineTerminator here] ++ одним из шагом вычисляется PutValue(lhs, newValue). Операция PutValue кидает ReferenceError, если тип первого операнда не Reference.
Дальше читаем:
http://es5.javascript.ru/x16.html#x16
Цитата:
|
Реализация должна рассматривать все случаи следующих ошибок как раннюю ошибку:
...
Попытки вызвать PutValue для значения, по которому можно заранее определить, что оно не является Reference (например, при выполнении инструкции присваивания 3=4).
|
В данном случае в выражении 'd'++ PutValue должен вызываться для значения выражения 'd', а строковый литерал никогда не возвращает Reference, поэтому интерпретатор при этом сообщает о ранней ошибке.