JavaScript/+@
表示
+
(Unary + Operator) は、ECMAScript における単項プラス演算子です。この演算子は、オペランドを数値に変換します。オペランドが既に数値の場合でも、数値型への明示的な変換として機能します[1]。
構文
[編集]+expression
expression
: 数値に変換される式。
この演算子は、以下のように使用されます:
letresult=+expression;
動作
[編集]単項プラス演算子 (+
) は、以下の手順で動作します:
- 式の評価:
expression
を評価します。 - 数値への変換: 評価結果を数値に変換します(
ToNumber
抽象操作を使用)。 - 結果の返却: 変換された数値を返します。
例
[編集]基本的な使用法
[編集]以下のプログラムは、単項プラス演算子の基本的な使用法を示しています。
// 基本的な使用法leta="42";letresult=+a;console.log(result);// 42 (数値)
このプログラムでは、文字列 "42"
が数値 42
に変換されます。
数値以外の型での使用
[編集]以下のプログラムは、数値以外の型に対して単項プラス演算子を使用する例を示しています。
// 数値以外の型での使用letb=true;letc=false;letd=null;lete="Hello";console.log(+b);// 1 (true は 1 に変換)console.log(+c);// 0 (false は 0 に変換)console.log(+d);// 0 (null は 0 に変換)console.log(+e);// NaN (数値に変換できない文字列は NaN)
このプログラムでは、true
は 1
に、false
は 0
に、null
は 0
に、"Hello"
は NaN
に変換されます。
日付オブジェクトでの使用
[編集]以下のプログラムは、日付オブジェクトに対して単項プラス演算子を使用する例を示しています。
// 日付オブジェクトでの使用letdate=newDate();lettimestamp=+date;console.log(timestamp);// 現在のタイムスタンプ(ミリ秒単位)
このプログラムでは、Date
オブジェクトがタイムスタンプ(ミリ秒単位の数値)に変換されます。
注意点
[編集]- 数値への変換: 単項プラス演算子は、オペランドを数値に変換します。変換できない場合(例:
"Hello"
)、NaN
が返されます。 - 副作用: 単項プラス演算子自体は副作用を持ちませんが、オペランドの評価に副作用がある場合、その副作用が発生します。
- 明示的な型変換: 単項プラス演算子は、文字列や他の型を数値に明示的に変換するために使用されます。例えば、
+"42"
は42
を返します。
脚註
[編集]- ^単項プラス演算子は、文字列や他の型を数値に変換するために使用されます。