В JavaScript в Chrome и Firefox:Почему " п" число "NaN" в Javascript
isNaN("\n")
дает false
parseFloat ("\n")
дает NaN
То же дали для \t
, \r
и \f
. '
\n
ряд- Parsed
\n
дает не число. - Экранированные символы, такие как NULL-байт
\0
,\\
и\"
действительно работают должным образом. - Мы знаем, что
NaN
это число, просто не представима любым другим значением - Так
\n
это число, которое не представима.
Почему браузеры реализуют его таким образом?
'parseFloat' может возвращать' NaN', но '+" \ n "' возвращает '0'. Существует различие между * parsing * строкой с 'parse (Float | Int)' и просто преобразованием ее в число. * «Почему браузеры реализуют это так?» * Потому что спецификация диктует это. –
Я понял, что есть разница. Я подозревал, что разбор требует действительных чисел («NaN не может отображать это как число»), но я не мог найти googling NaN и разбор. @FelixKling вы могли бы связать мне эту спецификацию? Я люблю понимать, почему именно. –
'parseFloat': http://es5.github.io/#x15.1.2.3,' isNaN': http://es5.github.io/#x15.1.2.4 и 'toNumber': http://es5.github.io/#x9.3. –