Казалось бы, "+" запускает преобразование к строке и конкатенацию.
Я ожидал, что
undefined + 1 = String(undefined) + 1 = 'undefined' + 1 = 'undefined1'
По факту
undefined + 1 = NaN
Почему так? Как происходит преобразование по шагам?
P.S. Или тут нет явно строк, поэтому '+' запускает преобразование к числу, т.е.
undefined + 1 = Number(undefined) + 1 = NaN + 1 = NaN
Так?