2017-03-06 10 views
1

これは、グローバル変数ウィンドウとNumber?なぜparseIntとparseFloatは2か所にありますか?

これには理由がありますか?

エイリアスですか?

グローバル導入 - のparseInt

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt

ナンバー実装

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/parseInt

数の実装 - のparseInt

+0

これらすべての3つの方法( 'Number'、' parseInt'、 'parseFloat')は異なる意味を有しています。 – MinusFour

+0

'Number.parseInt'と' window.parseInt'に明白な違いはありません。文字列の後にオプションの基数が続きます。 'window.parseInt'は、このパラメータが必須ではないので省略可能であることを示すべきであるため、この点に関しては、ドキュメントは少し不正確です。 –

+0

申し訳ありませんが、元の投稿を誤解しました。 [それらはどちらも同じです](https://tc39.github.io/ecma262/#sec-number.parsefloat) – MinusFour

答えて

1

のECMAScriptの最初の定義は、グローバル名にparseInt()parseFloat()を定義しペース。

しかし、グローバルな名前空間を汚染するのは反パターンになったため、ECMAScript 2015(第6版)のNumberオブジェクトに移動されました。

下位互換性のため、2つのメソッドはまだグローバル名前空間にあります。

のECMAScript 6

http://www.ecma-international.org/ecma-262/6.0/#sec-number.parseint
+1

Infinityのように見えるのは、正の値と負の値の両方で「廃止」されているようです。 –

+0

@brannonteerありがとう、それを実現しませんでした。 – subwaymatch

関連する問題