JavaScriptの基本文法(コメント/const/let/var)を学びます。
コメントの書き方
// 一行コメント // この1行はプログラムとして評価されません。 /* 複数行コメント 囲まれている範囲はプログラムとして評価されません。 */
変数と宣言
JavaScriptには変数を宣言するキーワードが3つあります。
■const
■let
■var
var が最も古いのですが、意図しない動作を誘発したため、ECMAScript 2015で新しくconst とlet が追加されました。
※JavaScriptという言語はECMAScriptによって仕様が定められています。
ECMAScriptは毎年アップデートされますが、直近の大きなアップデートは2015年にECMAScript 2015(ES2015)でした。
const
読み方は「コンスト」。
再代入できない変数の宣言とその変数が参照する値(初期値)を定義できます。
変数の定義は、const に続いて 変数名を書き、代ン風演算子( =)の右辺に変数の初期値を書きます。
const 変数名 = 初期値;
例えば変数jsに"JavaScript"という初期値を文字列で設定する場合は以下のようになります。
const js = "JavaScript";
変数同士を,(カンマ)で区切ることにより、複数の変数を定義できます。
const js = "JavaScript", rails = "Ruby on Rails"; // 上記は下記と同じです。 const js = "JavaScript"; const rails = "Ruby on Rails";
初期値といっても、constは再代入不可のため、宣言した変数に値を再代入しようとするとエラー(TypeError)が発生します。
const js = "JavaScript"; js = "JS"; // => TypeError: invalid assignment to const 'js'
一般的に変数の代入に関しては「変数の値は最初に定義した値と常に同一になる」という参照透過性(さんしょうとうかせい)というルールがあります。
変数への再代入はこのルールに違反し、バグの発生を誘発します。
変数に対して値を再代入する必要がない場合は、constを使って変数を宣言することが推奨されます。
なお、 constにはオブジェクトを定義することができます。
初期値を変えることはできませんが、オブジェクトの値は変えることができます。
再代入はできませんが、宣言した変数が常に同じ値を示すとは限らないため、定数とは異なります。
let
let はconstと異なり、値の再代入が可能な変数を宣言できます。
ほぼconstと同じ使い方ができますが、初期値を設定しなくて良い点は異なります。
初期値を指定しない場合は、デフォルト値(undefined)が設定されます。
値を代入するときは、代入演算子(=)を使います。
varの問題
varはletとほぼ同じ使い方ができます。
問題は、varキーワードには同じ名前の変数を再定義できてしまうことです。
そのため、意図せずに同じ変数名で定義してもエラーは生じず、値が上書きされてしまいます。
そのほか、「変数の巻き上げ」と呼ばれる挙動など複数の問題があることから、varの利用は避けたほうが良いとされています。
なお、var自体の動作が変更されていないのは、後方互換性を保つためです。
変数名の命名ルール
■半角のアルファベット、_、$、数字の仕様は可能
■数字から始めることはできない
■予約語は使用できない
参照:字句文法