JavaScript のデータ型(2)、数値型を初心者向けに分かりやすく解説|JavaScript入門講座(4)

JavaScript
この記事は約13分で読めます。

はじめに

 JavaScript入門講座の第四弾として、javascript のデータ型(2)、数値型ついて紹介します。

 この記事を読むと次の疑問について知ることができます。

  • データ型の数値型とはどのようなもの?
    ・数値型の種類
    ・数値の種々な表記方法
     2進数、8進数、10進数、16進数による表記
     「e」を用いた表記
    ・数値の演算
     算術演算子
     インクリメント、デクリメント演算子
     代入演算子
     論理演算子
     比較演算子

 JavaScript入門講座(3)では、JavaScript のデータ型(1)文字列型について解説してきました。

 ここでは、JavaScript のデータ型(2)、数値型について深堀していきます。

データ型の数値型

 JavaScriptでは、数値型のデータも扱うことができ、色々な場面で出てきます。

数値型の種類

 JavaScriptで扱える数値には、3つの種類があります。

  • 整数 ( integer )  ⇐ 小数点を持たない数値
    (例)5,-520、1500、-5890、564000
  • 浮動小数点数( float )  ⇐ 少数点を持つ数値
    (例)0.58、-5.94、0.5512、-895.26451、598.0056478
  • 倍精度浮動小数点数( double )  ⇐ 浮動小数点の2倍の精度を持つ数値
    浮動小数点は、32ビットの数を扱えますが、倍精度浮動小数点数は倍の数値64ビットの数値を扱え、その分大きな精度の良い数値を扱えます。
    詳細は倍精度浮動小数点数のWikiを参照。

数値の種々な表記方法

 JavaScriptでは、数値を種々な方法で書くことができます。

2進数、8進数、10進数、16進数による表記

 私たち人間の社会では、10進法を用いて数値を表現し利用していますが、この他に2進法、8進法、16進法などがJavaScriptでは扱うことができます。

 それでは、10進法で扱う数字で1,20,564,2000等がそれぞれの表記でどのように表されるかを見てみましょう。

10進法での数値 2進法での表記 8進法での表記 16進法での表記
1 1 1 1
20 10100 24 14
564 1000110100 1064 234
2000 11111010000 3720 7D0

 実際に、10進法の数値2000の数値を2進法(0b2進法表記の数値)、8進法(0o8進法表記の数値)、16進法(0x16進法表記の数値)を入れて、console.logでコンソールに出力した際にそれぞれが2000の値になるかを見てみましょう。

 niSin = 0b11111010000;//二進法での2000の数
const haSin = 0o3720;//8進法での2000の数
const juRokuSin = 0x7D0;//16進法での2000の数
console.log(niSin);
console.log(haSin);
console.log(juRokuSin);

上述のコードの解説

  1. constで宣言した変数 niSin に二進法での2000の数(0b11111010000)を代入
  2. constで宣言した変数 haSin に8進法での2000の数(0o3720)を代入
  3. constで宣言した変数 juRokuSin に16進法での2000の数(0x7D0)を代入
  4. console.log(niSin); console.log(haSin); console.log(juRokuSin);でそれぞれの値をコンソールに出力
    全てが、2000で出力されていることを確認してください。

「e」を用いた表記

 また、「e」表記で書く場合があります。

 書き方を次に示します。

数値e±整数 
例)125e2=125×102 =12500 ⇐ 「+」は省略可能
  -2.56e-2=-2.26×10-2=-0.0256

数値の演算

 JavaScriptのプログラム内では演算をすることが多くあります。

算術演算子

 その際に用いられるのが演算子ですが、演算子の中でも算術に特化したものを算術演算子と呼びます。

算術演算子 意味 説明
足し算 x = 56 + 24 56という数値に24という数値を足してその値を変数xに代入
引き算 x = 56 - 24 56という数値から24という数値を引いてその値を変数xに代入
掛け算 x = 56 * 24 56という数値と24という数値を掛け合わせた値を変数xに代入
/ 割り算 x = 56 / 24 56という数値を24という数値で割り算した値を変数xに代入
剰余
x = 56 % 24
56という数値を24という数値で割り算した時の余りを変数xに代入
** べき乗 x = 6**5 6という数値を5回かけ合わせた値を変数xに代入
var x = 56 + 24; //56という数値に24という数値を足してその値を変数xに代入
console.log(x);
var x = 56 - 24; //56という数値から24という数値を引いてその値を変数xに代入
console.log(x); 
var x = 56 * 24; //56という数値と24という数値を掛け合わせた値を変数xに代入
console.log(x); 
var x = 56 / 24; //56という数値を24という数値で割り算した値を変数xに代入
console.log(x); 
var x = 56 % 24; //56という数値を24という数値で割り算した時の余りを変数xに代入
console.log(x); 
var x = 6**5; //6という数値を5回かけ合わせた値を変数xに代入
console.log(x); 

上述のコードの解説

  1. varで宣言した変数 x に56という数値に24という数値を足して、その値を変数xに代入
    console.log(x);で結果の値をコンソールに出力、 (結果:80)
  2. varで宣言した変数 x に56という数値から24という数値を引いて、その値を変数xに代入
    console.log(x);で結果の値をコンソールに出力、 (結果:32)
  3. varで宣言した変数 x に56という数値と24という数値を掛け合わせ、その値を変数xに代入
    console.log(x);で結果の値をコンソールに出力、 (結果:1344)
  4. varで宣言した変数 x に56という数値を24という数値で割り算して、その値を変数xに代入
    console.log(x);で結果の値をコンソールに出力、 (結果:2.3333333333333335)
  5. varで宣言した変数 x に56という数値を24という数値で割った余りを変数xに代入
    console.log(x);で結果の値をコンソールに出力、 (結果:8)
  6. varで宣言した変数 x に6という数値5回掛け合わせ、その値を変数xに代入
    console.log(x);で結果の値をコンソールに出力、 (結果:7776)

インクリメント、デクリメント演算子

 この演算子は、良くループで回す際によく使われます。

 書き方を次に示します。

  • インクリメント演算子(++) ⇐ 対象を1増やす
    例)x++ 、++x
  • デクリメント演算子(--) ⇐ 対象から1を減らす
    例)x-- 、--x
var x = 6; //変数xに数値6を代入
var y = ++x; //変数yにインクリメント演算子でxに1足した値を代入
console.log(y);
y = x++; //変数yにインクリメント演算子でxに1足す前の値を代入後に、xに1足される。
console.log(y);
console.log(x);
var x = 6; //変数xに数値6を代入
var y = --x; //変数yにデクリメント演算子でxに1引いた値を代入
console.log(y);
y = x--; //変数yにデクリメント演算子でxに1引く前の値を代入後に、xから1を引く。
console.log(y);
console.log(x);

上述のコードの解説

  1. varで宣言した変数 x に6という数値を代入
  2. varで宣言した変数 y にxをインクリメント(++x)した値を代入
    console.log(y);で結果の値をコンソールに出力、 (結果:7)
  3. varで宣言した変数 y にxをインクリメント(x++)した値を代入
    console.log(y);で結果の値をコンソールに出力、 (結果:7)⇐ 前の結果が代入
    console.log(x);で結果の値をコンソールに出力、 (結果:8)⇐ 1足されてxに代入
  4. varで宣言した変数 x に6という数値を代入
  5. varで宣言した変数 y にxをデクリメント(--x)した値を代入
    console.log(y);で結果の値をコンソールに出力、 (結果:5)
    varで宣言した変数 y にxをデクリメント(x--)した値を代入
    console.log(y);で結果の値をコンソールに出力、 (結果:5)⇐ 前の結果が代入
    console.log(x);で結果の値をコンソールに出力、 (結果:4)⇐ 1引かれてxに代入

代入演算子

 今まで説明をせずに「=」を使ってきましたが、この演算子も代入演算子の代表的な一つです。

 他にも幾つかあるので紹介します。

代入演算子 意味 説明
+= 加算代入 x += 6 変数xに6という数値を足して変数xに代入
-= 減算代入 x -= 6 変数x6という数値を引いて変数xに代入
*= 乗算代入 x *= 6 変数xに6という数値を掛けて変数xに代入
/= 除算代入
x /= 6
変数xに6という数値で割って変数xに代入
%= 剰余代入 x %= 6 変数xを6で割った余りをxに代入
var x =3; // 変数xに数値3を代入
x += 6; // 変数xに数値6を足して代入
console.log(x); 
x -= 6; //変数xに数値6を引いて代入 
console.log(x); 
x *= 6; // 変数xに数値6を掛けて代入
console.log(x); 
x /= 6 ; // 変数xを数値6で割って代入
console.log(x); 
x %= 6 // 変数xを数値6で割った余り代入
console.log(x); 

上述のコードの解説

  1. varで宣言した変数 x に3という数値を代入
  2. 変数xに数値6を足して変数xに代入
    console.log(x);で結果の値をコンソールに出力、 (結果:X=3+6=9)
  3. 変数xに数値6を引いて変数xに代入
    console.log(x);で結果の値をコンソールに出力、 (結果:X=9-6=3)
  4. 変数xに数値6を掛けて変数xに代入
    console.log(x);で結果の値をコンソールに出力、 (結果:X=3×6=18)
  5. 変数xを数値6で割って変数xに代入
    console.log(x);で結果の値をコンソールに出力、 (結果:X=18÷6=3)
  6. 変数xを数値6で割っ他余りを変数xに代入
    console.log(x);で結果の値をコンソールに出力、 (結果:X=3÷6=0で余り3)

論理演算子

 論理演算子は主に制御文で利用されます。

 これについては、制御文のところで詳しく紹介します。

 論理演算子を次に紹介します。

論理演算子 意味 説明
&& 論理積  x && y xとyが両方とも「true」の場合「true」を返し、それ以外は「false」を返す。
|| 論理和 x || y xとyがのどちらかが「true」の場合「true」を返し、それ以外は「false」を返す。
! 論理否定 ! x xが「true」の場合は「false」を、xが「false」の場合は「true」を
var x=5;
console.log(x>2 && x<10); // 式の中身がtrueとtrueなので結果はtrue
console.log(x<2 && x<10); // 式の中身がfalseとtrueなので結果はfalse
console.log(x>2 && x>10); // 式の中身がtrueとfalseなので結果はfalse
console.log(x<2 && x>10); // 式の中身がfalseとfalseなので結果はfalse
console.log(x>2 || x<10); // 式の中身がtrueとtrueなので結果はtrue
console.log(x<2 || x<10); // 式の中身がfalseとtrueなので結果はtrue
console.log(x>2 || x>10); // 式の中身がtrueとfalseなので結果はtrue
console.log(x<2 || x>10); // 式の中身がfalseとfalseなので結果はfalse
console.log(! x>2); //式の中身がtrueなので結果はfalse
console.log(! x<2); //式の中身がfalseなので結果はtrue

 コードの解説は省略しますが、コメントをよく見て確認してくださいね。

比較演算子

 2つの式や値を比較するのに用います。

 if文やfor文で良くつかわれます。

 次にそれらの比較演算子を紹介します。

比較演算子 意味 説明
== 等価 x == y xとyが等価の時に「true」を返します。
!= 不等価 x != y xとyが等価でない時に「true」を返します。
=== 厳密等価 x === y xとyが厳密に等価の時に「true」を返します。
!== 厳密不等価
x!== y
xとyが厳密に不等価の時に「true」を返します。
< より小さい x < y xよりYが小さい時にtrue」を返します。
> より大きい x > y xよりYが大きい時にtrue」を返します。
<= 以下 x <= y xがy以下の時にtrue」を返します。
>= 以上 x >= y xがy以上の時にtrue」を返します。
var x = 6; //xに数値の6を代入
var y= "6"; //yに文字列の「6」を代入
console.log(x == y); //xの数値とyの文字列「6」を等価とみなして、「true」を返します。
console.log(x != y); //xの数値とyの文字列「6」を等価とみなして、「false」を返します。
console.log(x === y); //xの数値とyの文字列「6」を厳密に等価でないので、「false」を返します。
console.log(x !== y); //xの数値とyの文字列「6」を厳密に等価でないので、「true」を返します。
console.log(x < y); //xの数値とyの文字列「6」を等価とみなして、「false」を返します。
console.log(x < y); //xの数値とyの文字列「6」を等価とみなして、「false」を返します。
console.log(x <= y); //xの数値とyの文字列「6」を等価とみなして、「true」を返します。
console.log(x >= y); //xの数値とyの文字列「6」を等価とみなして、「true」を返します。

 コードの解説は省略しますが、コメントをよく見て確認してくださいね。

おわりに

 如何だったでしょうか?

 データ型の数値型とはどのようなもの?、数値型の種類、数値の種々な表記方法、2進数、8進数、10進数、16進数による表記、「e」を用いた表記、数値の演算、算術演算子、インクリメント、デクリメント演算子、代入演算子、論理演算子、比較演算子などについて紹介してきました。

 この記事があなたにとって少しでもお役に立てればこれほど嬉しいことはありません。

以上です。

 

コメント