Я занимаюсь JavaScript долго, но только что заметил кое-что, чего никогда раньше не видел. Рассмотреть возможность:
> +[1.5]
1.5
Почему это происходит? Является ли это особым правилом для интерпретации массивов как числовых значений или это случайность специальной алхимии?
Обратите также внимание на то, что:
> +[1,0]
NaN
Для меня это, конечно, имеет смысл, но я ожидал, что +[1]
тоже будет NaN, потому что это не число. Или это как-то классифицируется как число?
Затем есть эти случаи, которые заставляют меня поверить, что мы путешествуем через червоточину приведения типов (массив ==> строка, строка ==> число):
> [2] + [4]
"24"
> + [2] + [4]
"24"
> (+[2]) + (+[4])
6
> +[2] + [4,5]
"24,5"
> // which, incidentally, looks like a european-formatted number, but I see
> // that that's just an accident (still another possibility for confusion)
Что-то из этого сделано намеренно?
[1.5]
→'1.5'
→1.5
. Строковое представление[1,0]
— это'1,0'
, которое не является числовым. - person deceze♦   schedule 01.03.2018