プラス演算子を使用して文字列が数値にキャストされるコードを見たことがあります。
これは次のようになります。
var x ="5",y;
y = +x;
console.log(typeof y) //number
これはどのように作動しますか?
プラス演算子を使用して文字列が数値にキャストされるコードを見たことがあります。
これは次のようになります。
var x ="5",y;
y = +x;
console.log(typeof y) //number
これはどのように作動しますか?
実際には+
、二項 + 演算子と単項 + 演算子の 2 つの演算子があります。
MDNでの説明を参照してください。
- (単項プラス)
単項プラス演算子はそのオペランドの前にあり、そのオペランドに評価されますが、それを数値に変換しようとします、まだない場合。たとえば、y = +x は x の値を取り、それを y に割り当てます。つまり、x が 3 の場合、y は値 3 を取得し、x は値 3 を保持します。ただし、x が文字列 "3" の場合、y も値 3 を取得します。単項否定 (-) も非数値を変換できますが、単項プラスは何かを数値に変換する最も高速で好ましい方法です。番号に対して他の操作を実行します。整数と浮動小数点数の文字列表現、および文字列以外の値 true、false、および null を変換できます。10 進数と 16 進数 ("0x" プレフィックス) の両方の形式の整数がサポートされています。負の数がサポートされています (ただし、16 進数はサポートされていません)。特定の値を解析できない場合、NaN と評価されます。
var x = "5",
y;
x
それぞれとという名前の 2 つの変数を宣言していますy
。前者は文字列を保持するように設定され"5"
、後者はundefined
値を保持します (宣言されているが定義されていないため)。次に、 (単項演算子を介して)文字列の型のy
変換になるように設定しています。これは. だからあなたはなりつつあります。Number
"5"
+
5
typeof y
number
+
演算子は単項演算子です。オブジェクトを数値に変換しようとして評価します。