今回は、「数値と演算子」について見ていきます。
基本的には一般的な算数(数学)の知識があれば、何となく理解出来ると思います。
但し、記述の仕方が、一般的な算数とは違いますので、間違わないようにしてください。
また最初に覚えておいてほしいことが、プログラミングの世界では、「1+1」の式を計算することを「式を評価する」と言い、評価することによって得られる答えを「値」と言います。
つまり「式を評価すると値になる」ということになります。
数値の種類
JavaScript で使用する数値は以下になります。
- 整数:1,10,-100など
- 浮動小数点数:1.5855,25.2546など
- 倍精度浮動小数点数:通常の浮動小数点数よりも小数点以下が大きいもの
- 二進数:0と1だけで表現されるもの
- 八進数:8を基数として1桁を0~7で表すもの
- 十六進数 :16を基数として1 桁を 0 ~ 9、a ~ f で表すもの
算術演算子
算術演算子はJavaScriptで使う基本的な演算子になります。
演算子 | 名前 | 目的 | 例 |
---|---|---|---|
+ | 加算 | 足す | 1+2 |
– | 減算 | 引く | 20-1 |
* | 乗算 | 掛ける | 5*5 (5×5のこと) |
/ | 除算 | 割る | 20/4 |
% | 剰余 | 割ったあまりを求める | 9%2 (9を2で割った時のあまりである1) |
* * | 指数 | 基数を指数の累乗にする | 5**2 (5×5×5のこと) |
演算子を使用する際に注意して欲しいのは、計算する順番です。
一般的に習ってきた算数と同様に、「*」「/」が優先されます。
「+」「-」を先に計算する場合は「()」で囲みます。
インクリメント演算子とデクリメント演算子
インクリメント演算子
let num = 1; num++;
変数の前、または後に「++」を記述します。
numの値を1ずつ増やします。
デクリメント演算子
let num = 20 ; num--;
変数の前、または後に「–」を記述します。
numの値を1ずつ減らします。
「++」「–」を置く位置で結果が変わることがあります。
どのように違うのかを考える際に以下のようにイメージしておくと良いかと思います。
let num = 20; num++;
num = 20
20 + 1 =21
let num = 20; ++num;
num = 1 +20
あまり説明が良くない気もしますが、実際に計算していただくとその違いが分かると思います。
代入演算子
代入演算子は変数に値を代入します。
最も基本的な代入演算子は、「=」であり、すでに今まで何度も使用しています。
let num = 1;
さらに効率よくコーディングするために、様々な方法が用意されています。
演算子 | 名前 | 目的 | 例 | 同じコード |
---|---|---|---|---|
+= | 加算代入 | 右辺の値を左辺の変数値に加算して 新しい値を返します。 | x += 1; | x= x + 1; |
-= | 減算代入 | 右辺の値を左辺の変数値より減算して 新しい値を返します。 | x -= 1; | x = x – 1; |
*= | 乗算代入 | 左辺の変数値に右辺の値を乗算してから 新しい値を返します。 | x *= 3; | x = x * 3; |
/= | 除算代入 | 左辺の変数値に右辺の値で除算してから 新しい値を返します。 | x /= 4; | x = x / 4; |
比較演算子
「true」 または「false」で判定するのが、比較演算子になります。
演算子 | 名前 | 目的 | 例 |
---|---|---|---|
=== | 厳密な等価 | 右辺と左辺が厳密に同一か判定 | 10 === 2 + 8 |
!== | 厳密な不等 | 右辺と左辺が厳密に同一でないことを判定 | 10 !== 2 + 7 |
< | 小なり | 左辺の値が右辺の値より小さいことを判定 | 10<20 |
> | 大なり | 左辺の値が右辺の値より大きいことを判定 | 20>10 |
<= | 以下なり | 左辺の値が右辺の値以下であることを判定 | 10 <= 20 |
>= | 以上なり | 左辺の値が右辺の値以上であることを判定 | 20 >= 10 |
文字列の基本
文字列を囲む
前回の記事でも少し触れましたが、文字列を書くときは「クオテーション」で囲む必要があります。
let name = '太郎';
クオテーションは、シングルでもダブルでもどちらでも問題はありません。
文字列のエスケープ
テキストの中にクオテーションを含めたい時はどうすれば良いでしょうか。
let name = '"太郎"と花子';
例のように、シングルクオテーションの間にダブルクオテーションを記述する場合はこのままで問題ありません。
またその逆であっても問題はありません。
しかし次のような場合は問題が起こります。
let name = 'I've been there.'
テキスト上は正しくクオテーションを入れているつもりでも、コンピューターは正しく読み取ることが出来ません。
そのため、このような場合は「エスケープ文字」を用いて正しく読み込ませます。
let name = 'I\'ve been there.';
エスケープ文字はバックスラッシュを用いて表記する方法で、色々なコードが用意されています。
詳しくは以下のサイトをご参照ください。
MDN :エスケープ表記
文字列の連結
let one = 'こんにちは'; let two = 'お久しぶりです。'; let joined = one + two; joined; 'こんにちはお久しぶりです。'
文字列を連結するには、「+」を使います。
複数の変数を連結することも可能です。
その他にも以下のような連結を行うことが出来ます。
('こんにちは、' + name + 'お久しぶりです。')
'郵便番号は' + 100
数値を連結するときは注意が必要です。
「10 + 10 」の場合は20になりますが、「’10’ + ’10’」の場合は1010になります。
テンプレートリテラル
文字列を表すもう一つの方法に、「テンプレートリテラル」というものがあります。
どういうものかというと、今までは文字列をクオテーション(シングルまたはダブル)で囲っていましたが、テンプレートリテラルの場合、「`」バッククオテーションで囲んで記述する方法になります。
let one = ' こんにちは '; let one = `こんにちは`;
テンプレートリテラルを使うメリットは以下に挙げられます。
そのまま改行出来る
let one = `こんにちは。
今日は天気が良いですね、
明日も晴れるようです
。`;
今までは文字列の改行にエスケープ文字を記述する必要がありましたが、テンプレートリテラルを使うと改行したい位置でENTERを押せば改行されます。
(テンプレートリテラルを使用してもエスケープ文字を使用することは可能です)
文字列内に式を埋め込む
`私は${name}を、${num - 8}個食べました`;
式を「${}」で囲んで記述します
あとがき
全体的に分かりやすいものだったと思います。
あとは沢山のコードを書いていけば自然と覚えていきますので、それほど心配のない項目だと思います。
なお、「テンプレートリテラル」についてはとても簡単にご紹介させて頂いておりますが、実際に使用するにはしっかりとした学習が必要です。
但し、基本を理解するまではとりあえず無視しておいても良いかと思います。
いずれ別記事で詳しくご紹介させて頂く予定です。
今回も最後までお読み頂きありがとうございました。