違いは何ですか
"2" * 1 + 5
と
parseInt("2") + 5
より読みやすいコードを記述するだけであるか、最初の形式との互換性の問題があります。
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
コンストラクタを使用するだけです。
最初の形式で強制を使用しても互換性の問題はないと思います。これは広くサポートされるべき言語機能です。
ただし、いずれかの方法で変換を行うにはコードを追加する必要があるため ( * 1
vs. )、意図が明確になるため、スタイルの観点からparseInt
投票します。parseInt
暗黙の変換を使用せずに JavaScript で型をそのまま維持することは、場合によっては非常に困難です。
あなたのコードや JavaScript に精通していない人は、最初のフォームでも何が起こっているのか不思議に思うかもしれません。
さらに、コメントに示されているように、parseInt
より高速であるため、すべてにおいて有利です。