Оператор +
перегружен в JavaScript для выполнения конкатенации и сложения. То, как JavaScript определяет, какую операцию выполнять, основано на операндах. Если один из операндов не относится к классу Number
(или к примитиву number
), то оба будут преобразованы в строки для объединения.
3 + 3 = 6
3 + '3' = 33
'3' + 3 = 33
(new Object) + 3 = '[object Object]3'
Оператор -
, однако, предназначен только для чисел, и поэтому операнды всегда будут приводиться к числам во время операции.