コンピュータといえば計算です。計算機、とも呼びますよね。プログラム言語で行っていることは結局の所、計算計算計算です。
最近はやりの人工知能というものでも、データの入力があり、そこで情報をいろいろな方法で計算して、結果を出す、というものなので、本当に知能があるわけではないです。
紙と鉛筆があったらできることの、数百数千数万数億倍早く計算を行って結果を出力する。それがコンピュータの得意とすることです。
JavaScript で計算する。
早速計算してみましょう。
1 |
console.log(1 + 2 + 3); // 6 |
結果が出力されます。
単純ですね。
こんな感じにもできます。
1 |
console.log(1 + 2 - 3 * 2); // -3 |
かける×を表す * の方が優先されるので、3 - 6 の計算になり、結果は -3 になります。
変数を使います。
1 2 3 |
let a = 20, b = 10; let c = a / b; console.log(c); // 2 |
変数 a と b に代入した値から計算して c に代入して結果を得ることができます。
整数と実数
JS は珍しいことに、整数型とか実数型とかを区別しない言語です。どちらも数値型として扱われます。なので、実数と整数を区別する必要はありません。
1 2 |
let a = 10 / 3; console.log(a); // 3.3333333333333335 |
これは、ちょっとした 「JavaScriptの罠」だとは思うのですが、その話はまたどこか別のところでしましょう。
数値型かどうかを判定する
typeof という命令を使うと、変数の型を知ることができます。
1 2 3 4 5 |
let a = 1; console.log(typeof a); // number let b = '1'; console.log(typeof b); // string |
number とか string という変数の型を表す文字列を取得することができます。
異なる型同士を足し算してみたりする。
数値型と文字列型を足し算すると、文字列型として勝手に変換されて足し算が行われます。
1 2 3 |
let a = 1; let b = '1'; console.log(a + b); // 11 |
答えは、2 という数値ではなく 11 という文字列になります。 1 と 1 という文字列を連結したことになるわけです。なので、ある変数の値が、数値なのか、文字列なのか、を正しく知っておいて計算していかなければいけません。そうしないと、計算結果が思うように出力されないという目にあいます。
こんな、数値と文字列を プラス記号でつなぐ、というのは、実際のプログラミング中にはあまりしません。混乱の元になるからなるべく避けたいところです。
特殊な数値型の値
実際のプログラミング中にはほとんど使わないので重要でもなんでもないのですが、一応、言語の機能として存在するので紹介します。
数値ではない、を表す場合に、NaN という値を使います。NaN は、Not A Number の略語となります。
1 |
console.log(typeof NaN); // number |
数値型、なのに、「数値ではない値」というのは不思議なものですし、実用上 NaN を使うことはほぼありません。
また、「無限」を表す特殊な値、Inifinity もあります。
1 2 |
console.log( 1/ 0); // Infinity console.log(typeof Infinity); // number |
数値をゼロで割るときに、答えは「無限」だということで、Inifinity の値が取得できるのですが、計算としてわけがわからなくなるので、実用的ではない感じのものになります。
数値と、計算、については、このようなものになります。
数値の型判定、というのが長くなったので、次の記事で紹介します。