プログラミングの基本要素
変数
変数は、データを保持するための「入れ物」のようなものです。 変数には名前がついていて,そこに入れた値を後で参照したり,変更したりできます。変数を使うには,変数を用意します(これを「変数の宣言」という)。それには3つの方法があります。
- ・constというキーワードを書き,続いて変数名,=,値を指定する。その値が変数に格納される。constは定数を表し、新しい値を代入できない。
 const x = 12; 
-  ・letというキーワードを書き,続いて変数名,=,値を指定する。その値が変数に格納される。
 let x = 12; 
-  ・varというキーワードを書き,続いて変数名,=,値を指定する。その値が変数に格納される。
 var x = 12; 
変数名は、英数字、アンダースコア(_)、ドルマーク($)からなる文字列で,名前の先頭は数字以外の文字にします。名前の長さは任意です。ただし、JavaScirptがキーワードとして使う文字列(予約語)は使えません。
CやJava言語では,変数にどのような型のデータを入れるか(例えば数値か文字かオブジェクトかなど)をあらかじめ決めておく必要がありますが,JavaScriptにはその必要はありません。Loosely typed language(弱く型づけされた言語)です。
constとletを使って、変数をブロック{と}の中で宣言すると,その変数はそのブロック内だけで有効なローカル変数となります(これをブロックスコープと言います)。一方、変数をブロックの外で宣言すると,その変数はそのスクリプト内どこででも有効なグローバル変数となります。
一方、varで宣言された変数は、関数の内か外かで、その有効範囲が判断されます(関数スコープ)。
データ型
JavaScriptの変数の宣言に型を指定する必要はありませんが、データには型があります。
・基本型
    数値型  number    【値】整数または浮動小数点数
    文字列型 string    【値】シングル/ダブル引用符で囲まれた0個以上の文字
    真偽型  boolean   【値】trueまたはfalse
    特殊型            【値】null(値がないことを表す)、undefined(値が未定義)
・参照型
    配列      array  【値】データの集合(インデックス番号で要素を参照)
    オブジェクト object  【値】データの集合(名前で要素を参照)
    関数        function【値】一連の処理の集合
変数を宣言しても値を代入しないと、値はundefinedとなります。
次の例のように、整数が入る基本データ型の変数の場合、メモリ上の変数の場所にはその数値そのものが格納されます。
    const a = 100;
一方、参照型が入る変数の場合は、異なります。変数に値を代入する前に、メモリ上に配列やオブジェクトが作られており、変数に格納されるのは、その配列やオブジェクトがあるメモリ上のアドレス(ポインタとも言う)です。そのため、オブジェクトが入る変数のデータ型のことを参照型と呼びます。
リテラル
プログラムの中に書かれる固定の値がリテラルです。- [1] 数値のリテラル……整数(ex. 10)と浮動小数点数(ex. 12.3)。最大値は2の53乗から1引いた値。
- [2] 真偽値のリテラル……trueまたはfalse
- [3] 文字列のリテラル
 "abc"や'123'のように、0個以上の文字を二重引用符 (") または単一引用符 (') で括ったもの。JavaScript は自動的に文字列リテラルを一時的な String オブジェクトに変換するので、文字列リテラルを持つ値は、String オブジェクトのメソッドを呼び出すことができ、String.length プロパティを使って文字列の長さを知ることができます。
- [4] 配列のリテラル
 変数はひとつのデータを格納するものでしたが、複数のデータをまとめて扱うときに,便利なのが配列です。複数の値をひとまとまりとして名前(配列名)をつけ、1つの変数のようにして扱えます。
 配列中の個々のデータのことを配列の要素と呼びます。
 配列のリテラルは、次のように[と]の間に、要素をカンマで区切って並べて書きます。let a1 = [123.4, 56.7, 8.9]; let a2 = ["kyoto", "osaka", "ootsu", "gifu"];配列のそれぞれの要素は、配列名とインデックス(添字)を使って表します。インデックスとは配列の要素に番号をつけたもので、先頭が0で順にふられます。配列名に続いて[ ]を書き、その中に添字を書きます。
 たとえば、5個の要素を持つ配列dataの場合、[0]の値 [1]の値 [2]の値 [3]の値 [4]の値 
 配列dataの最初の要素はdata[0]と表し、
 配列dataの最後の要素はdata[4]と表します。
 data[1]のように配列名と添字で表した配列の要素は、変数と同じように扱え、値を参照したり、演算の対象にしたり、値を代入したりできます。data[0] = 123.4; data[1] = data[0] + 100;配列リテラルは Array オブジェクトであり、配列リテラルを持つ値にArrayオブジェクトのメソッドを使うことができます。a2.push("nagoya") //配列の最後に要素を追加
- [5] オブジェクトのリテラル
 要素をプロパティ名とその値のセットとして、複数の要素(データ)をまとめて扱うのがオブジェクトです。配列がインデックス番号で要素にアクセスするデータの集合であるのに対し、名前でアクセスするデータ集合です。
 オブジェクトのリテラルは、次のように括弧{と} で囲んで指定します。let obj1 = { name: "Shiga", kentyo: "ootsu", jinkou: 141 };ドット演算子 (.) の後ろにプロパティ名を書くことで、オブジェクトの要素へアクセスできます。console.log(obj1.name); //Shiga
文
プログラムに記述する命令の単位を「文」と呼びます。セミコロンによって文の区切りを表します。次のような処理をする文があります。
- ・計算をして、式の値を変数に入れる(代入する):
【例】 let a = 1 + 20; 
- ・関数を実行する:
【例】line(100,100,150,200); 
- ・オブジェクトを作って変数に入れる:(クラスとオブジェクト参照)
【例】 const 変数 = new クラス名(引数); 
算術演算子
算術的な計算をするには、次の算術演算子を使います。| 演算子 | 意味 | 
| + | 足し算 | 
| - | 引き算 | 
| * | 掛け算 | 
| / | 割り算 | 
| % | 割り算の余り 例:x%3 | 
| ++ | 1を加える 例:i++ | 
| -- | 1を引く 例:i-- | 
const a = 100; let x1 = a * 3;%は余りを計算する演算子で、次の文でx2の値は1になります。
const b = 10; let x2 = b % 3;
+演算子は足し算をする以外に、特別な働きをします。文字列に対して+演算子を使うと、2つの文字列をつなげます。例えば、 "Data" + "Visualization" の演算結果は、"DataVisualization"になります。
print("Value: " + x);と書くと、"Value: 数値"が、JavaScriptコンソールに表示されます。数値は変数xの値です。
コメント
プログラムに関する説明文をコメントと呼びます。コメントをプログラム内に書いておくと、どのような処理をさせているかが、すぐにわかるので、他の人のためにも自分のためにも便利です。コメントの書き方には次の2種類があります。- ・//の後ろ行末までがコメントとなる。
- ・/*と*/ではさんだ部分がコメントとなる。