JavaScript入門 練習問題 59:グローバル関数:文字列から数値への変換
次のコードを実行したときのコンソールへの出力として正しいものはどれですか?
```javascript
const value = parseInt("10.5px");
console.log(value);
```
- 数値の 10 が出力される
- 数値の 10.5 が出力される
- 数値の NaN が出力される
- 文字列 "10.5px" が出力される
- 実行時エラーが発生して停止する
正解と解説を見る
正解:数値の 10 が出力される
次のコードを実行すると、文字列の先頭から読み取れる整数部分が抽出され、数値の「10」が出力されます。
【正解の理由】
`parseInt`関数は、文字列を解析して整数(数値型)に変換する組み込み関数です。文字列の先頭から順に数値を読み取り、数値として解釈できない文字(ここでは「.」や「p」など)が現れた時点で解析を終了し、そこまでに読み取った数値を返します。そのため、「10.5px」からは整数の「10」が抽出されます。
【不正解の理由】
• 「数値の 10.5 が出力される」という結果は、`parseFloat`関数(小数点以下も解析する関数)を使用した場合の挙動であり誤り
• 「数値の NaN が出力される」という結果は、文字列の先頭が数値以外で始まっていた場合の挙動であり誤り
• 「文字列 "10.5px" が出力される」という結果は、変換処理が行われていないため誤り
• 「実行時エラーが発生して停止する」という説明は、`parseInt`はエラーをスローしないため誤り