数値演算
四則演算
+ | 加算 | |
– | 減算 | |
* | 乗算 | |
** | べき乗 | |
/ | 除算:小数の丸めはなし | 11 / 4 → 2.75 |
// | 除算の商 | 11 // 4 → 2 |
% | 除算の剰余 | 11 % 4 → 3 |
%% | %と同じ |
CoffeeScriptからJavaScrioptへコンパイルした結果は以下のようになる。
11 / 4 | 11 / 4 |
11 // 4 | Math.floor(11 / 4) |
11 % 4 | 11 % 4 |
11 %% 4 | modulo(11, 4) |
インクリメント/デクリメント
インクリメント(++)、デクリメント(–)演算子は、前置・後置で使用可能で、後置は参照後に、前置は参照前に演算が行われる。
1 2 3 4 5 |
a = 0 console.log(a++) # 0 console.log(++a) # 2 console.log(a--) # 2 console.log(--a) # 0 |
変数の値が小数部を持つと、演算誤差が発生する。
1 2 3 4 5 |
a = 0.1 console.log(a++) # 0.1 console.log(++a) # 2.1 console.log(a--) # 2.1 console.log(--a) # 0.10000000000000009 |
代入演算子
数値演算については、”+=”のような代入演算子が各四則演算子について使える。
丸め処理
Mathライブラリのクラスメソッドを使う。
小数点以下の処理 | |
Math.floor() | 切り捨て |
Math.ceil() | 切り上げ |
Math.round() | 四捨五入 |
文字列演算
結合
+演算子は二つの文字列を結合する。
片方が文字列でもう片方が数値の場合、数値が文字列に変換されて結合される。
演算 | 結果 |
“abc” + “def” | “abcdef” |
“abc” + 123 | “abc123” |
123 + “abc” | “123abc” |
代入演算子
代入演算子の場合、元の変数かオペランドのいずれか一方が文字数なら、文字列として結合される。
数値と文字列の変換
数値→文字列の変換
- 12.34 + “deg”
- String(12.34) + “deg”
- 12.34.toString() + “deg”
文字列→数値の変換
- Number(“34.56”)
- parseInt(“34.56”, 10)
- parseFloat(“34.56”)
- parseInt(“ffff”, 10)→65535
- parseInt(“0xffff”, 10)→65535
- parseInt(“22”, 10)→18
- parseInt(“0o22”, 10)→0
- parseInt(“111”, 10)→7
- parseInt(“0b111”, 10)→0
- parseInt(“abc”)→NaN
存在演算子
1 2 3 4 5 6 7 8 9 10 11 |
# 以下はtrue="存在" console.log 0? console.log 3.14? console.log "abc"? console.log ""? # 空文字列は"存在" console.log (new Object())? # 以下はfalse="非存在" console.log null? console.log undefined? console.log variable? # 未定義の変数は"非存在" |