は、私はこのようなコードに遭遇しました:parseFloatはエラーをスローしますか?私が働いているコードベースで
try {
price = parseFloat(price);
} catch (err) {
console.log(err);
}
私はprice
は数に変えることができないほとんどの場合、それは単に代わりNaN
の値を取得しますことを知っています。私の質問は、試行錯誤の構築を必要とするエラーが発生するケースはありますか?
は、私はこのようなコードに遭遇しました:parseFloatはエラーをスローしますか?私が働いているコードベースで
try {
price = parseFloat(price);
} catch (err) {
console.log(err);
}
私はprice
は数に変えることができないほとんどの場合、それは単に代わりNaN
の値を取得しますことを知っています。私の質問は、試行錯誤の構築を必要とするエラーが発生するケースはありますか?
エラーをスローして試行錯誤が必要な場合がありますか?
はい。参照エラー(price
が宣言されていなかったため)またはparseFloat
が関数などではないもので上書きされた場合は、parseFloat
も例外をスローする可能性があります。
ただし、文字列を渡すとエラーは発生しません。引数を文字列に変換しようとしたときに例外が発生した場合にのみスローされます。例は:
[Symbol.toPrimitive]
ことなく、これらのいずれかの方法がいずれも、これらの方法のオブジェクトを渡す.valueOf
または.toString
方法parseFloat()
自体はエラーを返すことはなく、返すことはありません。しかし、変数price
は、コンテキスト内で宣言されていない場合は、のようなエラーが発生します。
Uncaught ReferenceError: price is not defined
それが周りにtry/catchブロックがある理由を説明しています。
質問に答える:はい以前のjsの実行/コンテキスト(adblockersなどのため)を信頼できない場合は必要ありませんが、エラーをスローする関数parseFloat()
はありません通訳。
このエラーは' parseFloat'とは何の関係もありませんが、 'parseFloat'に達する前にスローされます(宣言されていない変数の読み込みによって)。 – Quentin
@quentin正しいので、私はそれを明確にした。しかし、実際の質問だけでなく、実際の質問を読んだ場合、OPは言います。*私の質問は、試行錯誤の構築を必要とするエラーが発生するケースがありますか? parseFloat()はエラーを返すことはできません "という質問が文脈の中で誤解を招きます。だから、あなたの下垂体を収縮させてください、これはOPの質問に対する答えです。 –
短い答え:MDN
所与の文字列から解析された浮動小数点数から号
。最初の文字が数値に変換できない場合は、NaNはエラーをスローするには、no例はありません
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseFloat
変数が存在しない場合でもエラーメッセージが表示され、エラーが発生することがあります。 OPは、 'parseFloat()'を使うときにtry/catchが必要な場合があるかどうかを明示的に尋ねます。 –
が返されます。
常に返信NaN文字を数字に変換できない場合。
「価格」に依存します。'var price = {valueOf(){新しいエラーを投げてください。 }} ' – Bergi