4

違いは何ですか

"2" * 1 + 5

parseInt("2") + 5

より読みやすいコードを記述するだけであるか、最初の形式との互換性の問題があります。

4

2 に答える 2

2

parseInt文字列から整数を取得するために使用されます。次のコードを検討してください。

var myString = "3 blind mice";
var myInteger = parseInt(myString); //3

JavaScript は自動型変換を行うので、次のようになります。

"2" * 1 + 5 //7

文字列"2"は数値に変換されます。

上記のコメントで述べたようにparseInt、ベースに追加の引数を取ります。

JavaScript には、型変換に関して多くの非常に奇妙な規則があり、JavaScript がすべての状況で何を行うかが明確でない場合があります。+演算子は、連結だけでなく加算にも使用されることに注意してください。

何かを数値に明示的に変換しようとしている場合はNumber、JavaScript が提供するコンストラクターを使用できます。次の点を考慮してください。

var myString = "2";
var myNum = Number(myString); //2
console.log(typeof myNum); //number

キーワードがなければ、new文字列を数値に変換するために使用できます。parseInt動作しますが、変換に使用する必要があるかどうかはわかりません。Numberコンストラクタを使用するだけです。

于 2013-01-02T03:15:37.170 に答える
0

最初の形式で強制を使用しても互換性の問題はないと思います。これは広くサポートされるべき言語機能です。

ただし、いずれかの方法で変換を行うにはコードを追加する必要があるため ( * 1vs. )、意図が明確になるため、スタイルの観点からparseInt投票します。parseInt暗黙の変換を使用せずに JavaScript で型をそのまま維持することは、場合によっては非常に困難です。

あなたのコードや JavaScript に精通していない人は、最初のフォームでも何が起こっているのか不思議に思うかもしれません。

さらに、コメントに示されているように、parseIntより高速であるため、すべてにおいて有利です。

于 2013-01-02T03:21:33.287 に答える