Автоматическое преобразование типов в JavaScript

Следующие все выражения в JavaScript очень очевидны.

var x = 10 + 10;

Значениеx является20.

x = 10 + '10';

Значениеx в этом случае1010 поскольку+ Оператор перегружен. Если какой-либо из операндов имеет тип string, производится конкатенация строк, и если все операнды являются числами, выполняется сложение.

x = 10 - 10;
x = 10 - '10';

В обоих этих случаях значениеx будет0 поскольку- оператор не перегружается таким образом, и все операнды преобразуются в числа, если они не перед фактическим вычитанием (вы можете уточнить, если я все равно ошибаюсь).

Что происходит в следующем выражении.

x = '100' - -'150';    

Значениеx является250, Что также кажется очевидным, но это выражение в некоторой степени эквивалентно следующему выражению.

x = '100' +'150';

Если бы это было так, то эти две строки были бы объединены и назначены100150 вx, Так почему же в этом случае выполняется сложение?

РЕДАКТИРОВАТЬ :

+'10' + 5 возвращается15 а также'a' + + 'b' возвращаетсяaNaN, Кто-нибудь знает почему?

Ответы на вопрос(5)

Ваш ответ на вопрос