JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptのNumber.valueOf()メソッドとは?構文と実行例をわかりやすく解説

Number.valueOf()は、Numberオブジェクトがラップしている数値(プリミティブ値)を返すJavaScriptの組み込みメソッドです。オブジェクトとして扱われている数値から、計算などにそのまま使える元の数値を取り出したい場合に活用できます。

構文

valueOf()メソッドの書式は以下のとおりです。

num.valueOf();

なお、このメソッドは引数を受け付けません。引数を渡しても無視され、常にオブジェクトが保持している元の数値が返される点に注意してください。

基本的な使用例

まずは、toString(16)で数値を16進数表記に変換するシンプルなサンプルです。

<html>
<head>
    <title>JavaScript Example</title>
</head>
<body>
    <script type="text/javascript">
        var num = 215;
        result = num.toString(16);
        document.write("Result: " + result);
    </script>
</body>
</html>

出力

Result: d7

toString(16)によって、数値215が16進数表記の「d7」に変換されて表示されます。

valueOf()の動作を確認する

次に、引数の有無や内容に関わらず、valueOf()がどのような結果を返すのかを確認してみましょう。

<html>
<head>
    <title>JavaScript Example</title>
</head>
<body>
    <script type="text/javascript">
        var num = 215;
        result = num.toString(16);
        document.write("Result: " + result);
        document.write("<br>");
        document.write("Result: " + num.valueOf(0));
        document.write("<br>");
        document.write("Result: " + num.valueOf(-16));
        document.write("<br>");
        document.write("Result: " + num.valueOf());
        document.write("<br>");
        var dat = 0/0;
        document.write("Result: " + dat.valueOf(16));
    </script>
</body>
</html>

出力

Result: d7
Result: 215
Result: 215
Result: 215
Result: NaN

結果のポイント

  • num.valueOf(0)num.valueOf(-16)num.valueOf()はすべて「215」を返します。これは、valueOf()が引数を一切受け付けず、渡された値を無視して元の数値を返すためです。
  • 0/0の計算結果であるNaN(非数)に対してvalueOf()を呼び出すと、「NaN」がそのまま返されます。

補足:現代のJavaScriptでのvalueOf()

現在のJavaScriptでは、new Number()のように明示的にNumberオブジェクトを生成することはほとんどなく、プリミティブな数値を直接扱うのが一般的です。ただし、プリミティブな数値に対してメソッドを呼び出す際には、内部的に一時的なラッパーオブジェクトが自動生成されるため、valueOf()も暗黙的に利用されています。仕組みを理解しておくと、オブジェクトとプリミティブの違いを把握するうえで役立ちます。

  1. JavaScriptのsymbol.valueOf()関数の使い方を徹底解説

    JavaScriptのsymbol.valueOf()関数とはJavaScriptのsymbol.valueOf()関数は、Symbolオブジェクトが持つプリミティブ値(Symbolそのもの)を返すメソッドです。SymbolはES6(ECMAScript 2015)で導入されたプリミティブ型の一つであり、一意で不変の値を生成するために使用されます。オブジェクトのプロパティキーとして利用することで、名前の衝突を防ぐことができます。基本構文symbol.valueOf()このメソッドは引数を受け取らず、呼び出し元のSymbolオブジェクトのプリミティブ値をそのまま返します。実装例以下は、symbo

  2. JavaScriptのNumber()関数とは?使い方とサンプルコードを解説

    JavaScriptのNumber()関数は、引数として渡された値やオブジェクトを、それに対応する数値へ変換するための関数です。真偽値や文字列型の数字、さらにはDateオブジェクトなども数値に変換できるため、データ型の変換処理において非常に便利な組み込み関数の一つです。例えば、Number(true)は「1」、Number(false)は「0」を返します。また、数字のみで構成された文字列「149」を渡せば数値の149に変換され、new Date()で生成した日付オブジェクトを渡すと、1970年1月1日からの経過ミリ秒数が返されます。以下に、Number()関数の動作を確認できるサンプルコードを