ねこさんとへびさんの新人技術ブログ

新人エンジニアのねこさんとへびさんの、技術向上のためのブログです。

速習!JavaScript - 変数と定数

変数とは、値を保持して置くための箱のようなものです。
JavaScriptの変数は、動的型付け(実際に代入する値によって型が決められる)のため、宣言時に型の指定はしません。

定数とは、変数と同様に値を保持しておくためのものです。
変数と違い、一度設定すると変更することができません。

変数

変数の宣言には三種類の方法があります。

  • varキーワードを使う
  • letキーワードを使う
  • 変数の前に何もつけない

varキーワード

構文:  var var1 = value1
スコープ:  ローカルスコープ(同一関数内)

※変数のスコープとは、その変数が使用できる"範囲"を指します。
ローカル変数の場合同じ関数内で使用できますので以下のように関数外では呼び出せません。
(ReferenceErrorが発生します)

function jscope(){
  var str = "local scope";
}
alert(str);

letキーワード

構文:  let var2 = var2
スコープ:  ブロックスコープ

※letを使用すると、varよりも更に有効範囲が狭まり、同一ブロックのみで使用ができます。
以下のようにブロック外で使用するとエラーが発生します。

if(true){
  let str = "block scope";
}
alert(str);

キーワードなし

構文:  var3 = var3
スコープ:  グローバルスコープ

※プログラムのどこからでも呼び出しが可能になります。
どこからでも上書きされてしまうグローバル変数はエラーの原因となりやすく推奨されていません。

定数

構文:  const var4 = value4

※定数を上書きしようとするとエラーが発生します。
(constでobjectを定義すると上書きが可能になるみたいです)

スコープ:  ブロックスコープ

参考サイト:JavaScript | MDN

↑Result欄にconsole.logの結果が出力されるかと思ったんですが、ブラウザのコンソールのほうに出力されてましたw

(byへびさん)