はじめに
以下のサイトを使用し、javascriptを学習しています。
現代の JavaScript チュートリアル
以下、備忘録として残します。
用語
オペランド(演算子が適用されるもの)
let a = (2*3); //オペランドが2つ。
let a = (2*3)+5; //オペランドが3つ。
単項演算
- オペランドが単数の場合
- (例)
-2
- (例)
二項演算
- オペランドが二つの場合
- (例)
1-2
- (例)
文字列連結、二項演算子
二項演算子が文字列の場合は結合される
let s = "my" + "string";
alert(s); // mystring
一方のオペランドが文字列の場合は文字列
alert( '1' + 2 ); // "12"
alert( 2 + '1' ); // "21"
"+" 以外の算術演算子は数値でのみ動作
alert( 2 - '1' ); // 1
alert( '6' / '2' ); // 3
数値変換、単項演算子
単項演算子が数値の場合何の影響もない
let x = 1;
alert( +x ); // 1
let y = -2;
alert( +y ); // -2
単項演算子が文字列の場合数値に変換される
// 非数値を数値に変換
alert( +true ); // 1
alert( +"" ); // 0
文字列を数値に変換
let apples = "2";
let oranges = "3";
// 二項演算子プラスの処理の前に、両方の値が数値に変換されます
alert( +apples + +oranges ); // 5
その場で変換する
変数に演算子を適用し、その中に新しい値を格納
let n = 2;
n += 5; // 今 n = 7 (n = n + 5 と同じ)
n *= 2; // 今 n = 14 (n = n * 2 と同じ)
alert( n ); // 14
通常の代入と同じ優先順位
let n = 2;
n *= 3 + 5;
alert( n ); // 16 (右のパートが最初に評価されるので、 n *= 8 と同じ)
カンマ
最後の結果のみが返却される(丸括弧で覆った場合)
let a = (1 + 2, 3 + 4);
alert( a ); // 7 (3 + 4 の結果)
丸括弧で覆わなかった場合の挙動
let a = 1 + 2, 3 + 4 ; //+ を最初に評価し、a = 3, 7 に加算、カンマのあとの 7 は処理されない。
alert(a); //3