2

プラス演算子を使用して文字列が数値にキャストされるコードを見たことがあります。

これは次のようになります。

var x ="5",y;
y = +x;
console.log(typeof y) //number

これはどのように作動しますか?

4

2 に答える 2

3

実際には+、二項 + 演算子と単項 + 演算子の 2 つの演算子があります。

MDNでの説明を参照してください。

  • (単項プラス)

単項プラス演算子はそのオペランドの前にあり、そのオペランドに評価されますが、それを数値に変換しようとします、まだない場合。たとえば、y = +x は x の値を取り、それを y に割り当てます。つまり、x が 3 の場合、y は値 3 を取得し、x は値 3 を保持します。ただし、x が文字列 "3" の場合、y も値 3 を取得します。単項否定 (-) も非数値を変換できますが、単項プラスは何かを数値に変換する最も高速で好ましい方法です。番号に対して他の操作を実行します。整数と浮動小数点数の文字列表現、および文字列以外の値 true、false、および null を変換できます。10 進数と 16 進数 ("0x" プレフィックス) の両方の形式の整数がサポートされています。負の数がサポートされています (ただし、16 進数はサポートされていません)。特定の値を解析できない場合、NaN と評価されます。

于 2013-10-10T13:12:53.097 に答える
0
var x = "5",
    y;

xそれぞれとという名前の 2 つの変数を宣言していますy。前者は文字列を保持するように設定され"5"、後者はundefined値を保持します (宣言されているが定義されていないため)。次に、 (単項演算子を介して)文字列の型のy変換になるように設定しています。これは. だからあなたはなりつつあります。Number"5"+5typeof ynumber

+演算子は単項演算子です。オブジェクトを数値に変換しようとして評価します。

于 2013-10-10T13:14:24.327 に答える