В общем-то все логично. Операция "+" может быть произведена со строками и производится с ними. Операция "-" - только с числами и потому строки интерпретируются как число. Два плюса (A + + B) снова подразумевают минимум одну операцию с числами, поэтому + + '5' - прокатывает, а + + 'foo' - закономерно выдает NaN.
Но все это не более чем разминка для ума, как и навороченное разыменовывание указателей в C или игры с навороченными регулярками в Perl. В нормальном коде людям обычно не лень привести типы вручную.
ТАК, ЧТО ТАМ У НАС ТВОРИТСЯ В ЗАХВАТЫВАЮЩЕМ МИРЕ ВЕБ-КОМИКСОВ?..
£91
^ С. У Д
и у \ /1 /
ОЛИН ЧЕЛОВЕК
РОПСЕНШТИЛЬС/
Я, КАЖЕТСЯ, ПОЗНАЛ ТЩЕТУ БЫТИЯ.
ПИСТОЛЕТ В СЛИВНОМ _БАЧКЕ.
Но все это не более чем разминка для ума, как и навороченное разыменовывание указателей в C или игры с навороченными регулярками в Perl. В нормальном коде людям обычно не лень привести типы вручную.