'1'+2='12';2+'1'=3;
Потому что использовать один и тот же символ для математических операций и конкатенации строк в языке с динамической типизацией — суть зло.
Да это-то фигня, здесь хотя бы сразу логика понятна: операция приводит оба операнда к типу данных первого.
Вот поинтереснее:
Ты пытаешь к строке прибавить число? Ок, язык преобразовывает число в строку и складывает
Ты пытаешься к числу прибавить строку? Ок, язык преобразовывает строку в число и складывает.
'1'+2='12';
2+'1'=3;
Потому что использовать один и тот же символ для математических операций и конкатенации строк в языке с динамической типизацией — суть зло.
Да это-то фигня, здесь хотя бы сразу логика понятна: операция приводит оба операнда к типу данных первого.
Вот поинтереснее:
Ты пытаешь к строке прибавить число? Ок, язык преобразовывает число в строку и складывает
Ты пытаешься к числу прибавить строку? Ок, язык преобразовывает строку в число и складывает.