3

Chrome および Firefox の JavaScript の場合:

isNaN( "\n" )与えるfalse
parseFloat ( "\n" )_NaN

\t\rおよび\f.'についても同じ結果が得られます。

  • \nは数字です
  • 解析\nすると、Not A Number が返されます。
  • NULL バイトなどのエスケープ文字は期待どおり\0に機能\\\"ます。
  • それが数値であることはわかっていNaNますが、他の値では表現できません
  • 数値\nも同様で、表現できません。

なぜブラウザはこのように実装するのですか?

4

2 に答える 2

7

toNumber空白のみで構成されている (または空の場合) 文字列を変換すると、0.

console.log(Number("\n")); // 0

parseInt/Floatメソッドでは、実際には数値コンテンツを変換する必要がありますが、先頭のスペースと末尾のゴミは許可されます

console.log(parseFloat("   123.45odsifjj")); // 123.45

toNumber変換は、「9.3.1 ToNumber の文字列型への適用」で定義されてます。

空であるか空白のみを含む StringNumericLiteral は +0 に変換されます

于 2013-05-31T20:26:43.413 に答える