自主学習2-2「書籍『JavaScript本格入門』を読んでみた。(JavaScript基礎まとめ2)変数、定数、命名規則」

前回「自主学習2-1」に引き続き、今回も書籍『JavaScript本格入門』を読んだ箇所(基礎部分)をまとめていきたいと思います。

参考書籍【改定新版JavaScript本格入門】(著者)山田祥寛(出版)技術評論社

変数について

変数とは?

データの入れ物。処理途中のデータを一時的に保存するための入れ物。「入れ物」なのでスクリプトの途中で中身を入れ替えることができる。

変数宣言とは?

変数を利用するために変数に名前をつけてJavaScriptに登録し、かつ値を格納するための領域をメモリ上に確保すること。

変数宣言varOKコード
var hello =`こんにちは`;

【構文】var 変数名 =初期値

  • 変数名をカンマで区切って複数宣言することも可能。
  • JavaScriptの=(イコール)は、「左右の値が同じ」という意味ではなく「右辺の値を左辺の値に格納(代入)しなさい」という意味である。
  • var命令は重複を許可する。(下記参照)
「var命令は重複を許可する」とは?
var命令の上書きについて
var hello=`こんにちは`;
var hello=`やぁ`;

上記のコードでは最終的に変数helloには「やぁ」が代入されている。変数「こんにちは」に、「やぁ」が上書きされたのである。これが「var命令は重複を許可する」の意味するところである。

変数宣言varNGコード
hello=`こんにちは`;

上記のサンプルコードは、(変数宣言が書かれていないが)値が代入された時点でJavaScript側が暗黙的に領域を確保してくれているだけで、この書き方は間違いではないが避けるべきである。

変数を宣言するもうひとつの構文、letとは?

変数宣言letコード
let hello =`こんにちは`;

【構文】let 変数名 =初期値

  • let命令の方が、var命令よりも細かく変数の有効範囲を管理することができる。
  • let命令は同名の変数を許可しない。(下記参照)

「let命令は同名の変数を許可しない」とは?
let命令の上書きについて
let hello=`こんにちは`;
let hello=`やぁ`;

let命令では変数の上書きが禁止されているため、上記のコードでは変数名helloの重複によってエラーが発生する。これが「let命令は同名の変数を許可しない」の意味するところである。

定数について

定数とは?

データの「入れ物」と「中身」がワンセット。変数とは別物である。スクリプトの途中で中身を入れ替えることができない。

定数を使用する目的は?

例えば値段に消費税を掛けるコードにて、法改正によって税率が変わるたびにプログラム内のコード全てを修正していたら、面倒&修正漏れの原因となってしまう。プログラムの最初に税率の値に名前をつけることにより、これらの問題が解消される。このように、意味のある値にあらかじめ名前をつけておく仕組みが定数である。

定数constコード
const TAX =1.08;

【構文】const 定数名 = 値

識別子の命名規則について

識別子とは?

スクリプトを構成する要素につけられた名前。JavaScriptには最低限知っておくべき命名規則が4つある。

識別子の命名規則
  • 1文字目は英字、アンダースコア、ドル記号のいずれかであること。(1文字目に数字は使えない)※1文字目のアンダースコアについては後述
  • 2文字目以降は1文字目で使える文字もしくは数字のいずれかであること。
  • 変数名に含まれる英字の大文字小文字は区別される。
  • JavaScriptで意味を持つ予約語でないこと。
JS予約語
参考画像2-2-1

命名規則における注意点

  • 名前からデータの中身が推測しやすい。
  • 長すぎず短すぎず。
  • 見た目が紛らわしくない。
  • 1文字目の_は極力使わない。JavaScriptの世界ではアンダースコアを頭につけた変数や関数などは、特別な意味を持つので(プライベートなオブジェクト的な意味を持つ)普通の識別子としては使用しない。
  • 基本的に英単語とする。
  • あらかじめ決められた記法で統一する。

命名規則における「あらかじめ決められた記法」とは?

camelCase(キャメルケース)記法
camelCase
  • 先頭単語の頭文字は小文字、それ以降の単語の頭文字は大文字。大文字が「らくだのこぶ」のように見えることから命名された。
  • 例)lastName
  • 主に変数/関数名を付ける時に使用
Pascal(パスカル)記法
Pascal
  • 全ての単語の頭文字が大文字。 キャメルケースと違い先頭も大文字。
  • 例)LastName
  • 主にクラス名を付ける時に使用
under_score(アンダースコア)記法
under_score
  • 単語同士を_で連結。
  • 例)last_name
  • 主に定数名を付ける時に使用
その他の記法
その他
  • 全てを大文字で、連結部を_で記述。
  • 例)LAST_NAME
  • 主に定数名を付けるときに使用。
ゴミコ
今回も書籍のまとめ学習なので、講師からのコメントは無し。次回も書籍まとめになります。

次回の記事

にほんブログ村 IT技術ブログへ
にほんブログ村