Почему 1 + + + 1 = 2
в Javascript?Нужна помощь в понимании оператора + в Javascript
Как называется это поведение? Это где-то задокументировано?
Спасибо.
Почему 1 + + + 1 = 2
в Javascript?Нужна помощь в понимании оператора + в Javascript
Как называется это поведение? Это где-то задокументировано?
Спасибо.
Это из-за расстояния. Унарный оператор +
может быть применен столько раз, сколько необходимо, и поэтому ваше выражение становится:
1 + (+(+1))
То есть,
1 + 1
. Обычно вы не можете этого сделать, т. Е. 1 + ++ 1
не будет работать, но это связано с тем, что два +
s анализируются как приращение префикса, которое является недопустимым, если оно не используется для переменной. Точно так же 1 +++ 1
терпит неудачу, потому что он разобран как 1++ + 1
, и вы не можете увеличивать 1
.
Он разбирается как ...
1 + (+ (+ 1))
... который, очевидно, имеет значение два.
http://stackoverflow.com/questions/971312/why-avoid-increment-and-decrement-operators-in-javascript –
@ Судир: Интересно, однако, здесь нет ++. – Thilo