JavaScript 第5版 5章 式と演算子
5.1 式と演算子
式とは、
-
- 評価し、
- 値を生成できるもの。
具体的には、
// リテラル式 3.14 true 'ken' // 変数式 x // 演算子との組み合わせ 1 * 2
演算子と組み合わせて単純な式を作れる
3.14 * 2
5.2 演算子の概要
演算子には、
-
- 優先順位
- 結合性(左→右 or 左←右)
- オペランドの型
がある。
「=」や「,」などは優先順位が低い。それに対して、「.」や「new」は優先順位が高い。
「=」の結合性は、左←右だから、右側のオペランドが評価されてから、左側のオペランドが評価される。
「+」の結合性は、左→右だから、左側のオペランドが評価されてから、右側のオペランドが評価される。
1 + 2 + 3 // ((1 + 2) + 3) となる。
5.2.3 演算子の優先順位
「+」よりも「*」の方が優先など。優先順位を変更したい場合は、()を使う。
5.3 算術演算子
// 加算演算子「+」 1 + 1 // 2 "ken" + 1 // ken1 // 減算演算子「-」 2 - 1 // 1 // 乗算演算子「*」 2 * 5 // 10 // 除算演算子「/」 4 / 2 // 2 // 剰余演算子「%」 5 / 2 // 1 // 単項プラス「+」 + 1 // 1 + '1' // 1(数値に変換) // 単項マイナス「-」 - 1 // -1 // インクリメント演算子「++」 x++ ++x // デクリメント演算子「--」 y-- --y
5.4 等値演算子
5.6 文字列演算子
文字列連結の「+」や文字列比較の「>」など。
5.7 論理演算子
要注意。
5.7.1 論理積演算子(&&)
true/falseの論理値を返す訳ではないので要注意!
alert(1 && true && new Date()) // 日付が表示される。 alert(1 && true && new Date() && 0) // 0が表示される。 alert(1 && true && new Date() && 0 && "a") // 0が表示される。
一番最後に評価された結果が返される。上記2番目は、「0」が最後に評価され返される。3番目は、"a"は評価されないので、「0」が返される。