Все знают основные конкатенации двух строк в JavaScript:Weird поведения при использовании + + в JavaScript
> "Hello " + "World!"
'Hello World!'
Но что произойдет, если мы используем + +
вместо +
? Я просто столкнулся со следующей странного поведения:
> "Hello " + + "World!"
'Hello NaN'
> "Hello " + + ""
'Hello 0'
Из приведенных выше примеров, я могу видеть, что вторая строка преобразуется в число. Таким образом, передавая объект с свойством valueOf
как функцию, значение, возвращаемое этой функцией, будет преобразовано.
> "Hello " + + ({valueOf: function() {return 1; }})
'Hello 1'
Как и ожидалось, это показывает "Hello 1"
.
Почему вторая строка преобразована в Number
? Почему бы не выбросить синтаксическую ошибку или так?
@jeremyharris Да, но не '+ +' ('+ +'). –
оценка + "" дает вам нулевое –
: получилось, удалено :) – jeremyharris