カテゴリ: JavaScript 更新日: 2026/02/03

JavaScriptのNumber関数で文字列を数値に変換する方法をやさしく解説!初心者でもわかる型変換の基本

JavaScriptのNumber関数で文字列を数値に変換する方法
JavaScriptのNumber関数で文字列を数値に変換する方法

先生と生徒の会話形式で理解しよう

生徒

「先生、JavaScriptで文字として書かれた数字を、本物の数値に変える方法ってありますか?」

先生

「いい質問だね。JavaScriptでは、Number関数を使えば、文字列を数値に変換することができますよ。」

生徒

「それって難しくないですか?何か特別なことをしないといけないんでしょうか?」

先生

「大丈夫。とってもシンプルです!実際に使い方を見ていきましょう。」

1. Number関数とは?

1. Number関数とは?
1. Number関数とは?

JavaScript(ジャバスクリプト)には、文字列(もじれつ)数値(すうち)に変えるための便利な関数があります。それがNumber関数です。

たとえば「"123"」のような、数字っぽい文字列をそのまま使うと、計算できません。しかしNumber関数を使うと、文字列を本物の数値に変えて、たし算やひき算ができるようになります。

2. 基本的な使い方

2. 基本的な使い方
2. 基本的な使い方

使い方はとても簡単です。Number("文字列")と書くだけで、文字列を数値に変換できます。

たとえば、次のように使います。


let str = "456";
let num = Number(str);
console.log(num); // 456(数値として出力)

このコードでは、文字列"456"が、数値の456に変わっています。


456

3. 計算してみよう!

3. 計算してみよう!
3. 計算してみよう!

変換した数値は、ちゃんと計算にも使えます。次の例を見てみましょう。


let priceText = "1000";
let taxText = "80";

// 文字列を数値に変換
let price = Number(priceText);
let tax = Number(taxText);

// 合計金額を計算
let total = price + tax;
console.log("合計金額は " + total + " 円です");

合計金額は 1080 円です

もしこの変換をしないままだと、文字列同士の結合(けつごう)になって、"100080"のようになってしまいます。

4. 変換できない場合はどうなる?

4. 変換できない場合はどうなる?
4. 変換できない場合はどうなる?

Number関数で文字列を数値に変換しようとしても、変換できない文字列もあります。たとえば、文字や記号などが混じっている場合です。


let text = "abc123";
let result = Number(text);
console.log(result);

NaN

NaN(ナン)とは「Not a Number(ナンバーじゃない)」の略で、「数値として扱えませんよ」という意味の特別な値です。

5. 空の文字列やスペースだけの場合

5. 空の文字列やスペースだけの場合
5. 空の文字列やスペースだけの場合

空の文字列や、スペースだけの文字列をNumber関数に渡すと、どうなるでしょうか?


console.log(Number(""));      // 0
console.log(Number("   "));   // 0(スペースもOK)

0
0

実はこれ、数値の0として変換されるんです。これはちょっと意外ですよね。

6. 小数やマイナスの数値もOK

6. 小数やマイナスの数値もOK
6. 小数やマイナスの数値もOK

Number関数は、小数(しょうすう)マイナスの数もちゃんと変換できます。


console.log(Number("-3.14"));  // -3.14
console.log(Number("0.5"));    // 0.5

-3.14
0.5

このように、Number関数は幅広いパターンの数値に対応しています。

7. よくあるミスと注意点

7. よくあるミスと注意点
7. よくあるミスと注意点

数値に変換する際によくある間違いは、文字列の中にカンマ(,)が入っているパターンです。


let str = "1,000";
console.log(Number(str));  // NaN になる!

NaN

カンマは取り除いてから変換する必要があります。カンマを削除するには、replaceという機能を使います。


let str = "1,000";
let cleaned = str.replace(",", "");
console.log(Number(cleaned));  // 1000

1000

8. Number関数とparseIntの違いは?

8. Number関数とparseIntの違いは?
8. Number関数とparseIntの違いは?

Number関数の他にも、parseIntという関数があります。こちらも文字列を数値に変換することができますが、違いがあります。


console.log(Number("10.5"));     // 10.5(小数のまま)
console.log(parseInt("10.5"));   // 10(小数点以下は切り捨て)

10.5
10

小数をそのまま扱いたいときはNumberを使いましょう。

まとめ

まとめ
まとめ

ここまで、JavaScriptにおける数値変換の基本であるNumber関数について詳しく解説してきました。Web開発やプログラミングの現場では、ユーザーがフォームに入力した値や、外部のAPIから取得したデータが「文字列」として扱われることが非常に多くあります。これらをそのまま加算しようとすると、意図しない文字列結合が発生してバグの原因となります。そのため、Number関数を使った適切な型変換をマスターすることは、初心者から脱却するための第一歩と言えるでしょう。

Number関数の重要なポイントをおさらい

記事の内容を振り返り、特に重要なポイントを整理しました。これらを意識するだけで、コードの品質は格段に上がります。

  • 基本的な変換: Number("123") のように記述することで、文字列を数値型に変換できる。
  • 算術演算への応用: 変換後の値は、通常の数値として加減乗除の計算が可能になる。
  • NaN(Not a Number)の発生: 数字以外の文字("abc"など)が含まれる場合、結果はNaNになる。
  • 空文字の挙動: 空の文字列 "" や半角スペース " " を変換すると 0 になる特性がある。
  • 小数と負の数: 浮動小数点数やマイナス記号付きの文字列も、正確に数値として認識される。
  • カンマの注意点: "1,000" のようなカンマ区切りの文字列は、そのままでは変換できないため、事前に除去が必要。

実践的なサンプルコードで理解を深める

実際のアプリケーション開発を想定した、より具体的なサンプルプログラムを見てみましょう。例えば、ユーザーが入力した複数の数値の平均値を出すプログラムです。


// フォームから取得したと想定される文字列の配列
let scoresText = ["85", "92", "78", " "];

let totalScore = 0;
let count = 0;

for (let i = 0; i < scoresText.length; i++) {
    // 文字列を数値に変換
    let score = Number(scoresText[i]);

    // NaNでない、かつ0より大きい(空文字でない)場合のみ加算
    if (!isNaN(score) && scoresText[i].trim() !== "") {
        totalScore += score;
        count++;
    }
}

let average = totalScore / count;
console.log("有効な点数の合計: " + totalScore);
console.log("平均点: " + average);

実行結果は以下のようになります。


有効な点数の合計: 255
平均点: 85

このように、isNaN()関数と組み合わせることで、エラーを防ぎながら安全に数値を扱うことができます。

TypeScriptでの扱いについて

近年、JavaScriptの拡張版であるTypeScript(タイプスクリプト)を利用するケースも増えています。TypeScriptでは「型」を厳格に管理するため、Number関数の重要性がさらに増します。


function calculateAge(birthYearStr: string): number {
    const currentYear: number = new Date().getFullYear();
    const birthYear: number = Number(birthYearStr);

    if (isNaN(birthYear)) {
        throw new Error("誕生年は数値形式で入力してください。");
    }

    return currentYear - birthYear;
}

const age = calculateAge("1995");
console.log(`現在の年齢は ${age} 歳です。`);

TypeScriptを使うことで、どの変数が数値で、どの変数が文字列なのかを明確に区別できるため、Number関数による変換のタイミングがより分かりやすくなります。

今後の学習に向けて

JavaScriptにはNumber以外にも、parseIntparseFloat、あるいは単項プラス演算子(+)を使った変換方法もあります。状況に応じてこれらを使い分けることが、プロフェッショナルなエンジニアへの近道です。まずは、最も標準的で挙動が素直なNumber関数を使いこなし、データの型を意識したプログラミングを心がけてみてください。

先生と生徒の振り返り会話

生徒

「先生、まとめまで読んで、Number関数の使いどころがすごくよく分かりました!文字列のまま足し算をして『10080』になっちゃうミス、実は僕もやったことがあります(笑)」

先生

「ははは、それは誰もが一度は通る道ですよ。特にフォームの入力値を取得するときは要注意ですね。ブラウザから受け取る値は、見た目が数字でも中身は文字列であることがほとんどですから。」

生徒

「空の文字をNumberに入れると0になるのは驚きました。もし0として扱いたくない場合は、さっきのサンプルコードみたいに工夫が必要なんですね。」

先生

「その通り!プログラミングでは、言語の仕様を知った上で『自分のプログラムではどう扱いたいか』を制御することが大切です。NaNのチェックもセットで覚えると完璧ですよ。」

生徒

「カンマ付きの数字についても、replaceで消してから変換する方法が分かったので、家計簿アプリみたいなものも作れそうです。TypeScriptでの書き方も少し見えてきました!」

先生

「素晴らしい意気込みですね。型を意識できるようになると、複雑なプログラムでもバグが少なくなります。これからも、一つひとつの関数の挙動を楽しみながら学んでいきましょう。」

生徒

「はい!ありがとうございます。まずは自分のコードを見直して、適切な場所にNumber関数を入れてみます!」

カテゴリの一覧へ
新着記事
New1
TypeScript
TypeScriptでパスエイリアスを設定する方法!baseUrlとpathsでコードをスッキリ整理
New2
JavaScript
JavaScriptのfor文の書き方を初心者向けにやさしく解説
New3
JavaScript
JavaScriptの関数でよくあるエラーとその解決法まとめ
New4
JavaScript
JavaScriptのイベント処理でよくあるエラーとその対処法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptのマウスイベントの使い方(click, mouseoverなど)
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptのtoStringとString関数の違いを初心者向けに解説
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptの純粋関数(pure function)と副作用の違いを理解しよう
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptで文字列をforループで1文字ずつ処理する方法!初心者向け解説
No.7
Java&Spring記事人気No7
TypeScript
TypeScript学習におすすめの無料教材・リファレンスサイト【初心者向け】
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptのDOMContentLoadedとloadイベントの違いを理解しよう