javascript基礎 変数を宣言する

javascript基礎 変数を宣言する

javascriptの基礎である変数を宣言する手順を記述してます。「var」はバグを起こしやすいので、基本的は「const」と「let」を使用します。

環境

  • OS windows11 home
  • ブラウザ chrome 103.0.5060.134

変数を宣言

変数を宣言するには、「const」と「let」と「var」を使用します。
※ちなみに「const」と「let」は「ECMAScript2015(ES6)」から追加されました。

const

「const」の場合は、基本的には定数として使用することができ、値を変更することができません。

const num = 1

console.log(num) // 1

num = 2 // Uncaught TypeError: Assignment to constant variable.

値を変更しようとするとエラーが発生します。

また、値を指定していない場合もエラーとなります。

const num // Uncaught SyntaxError: Missing initializer in const declarationc

連続して値を指定することも可能です。

const num1 = 1 , num2 = 2

console.log(num1) // 1
console.log(num2) // 2

ただし、オブジェクトといわれるデータ型は変更や追加が可能です。
※変更や追加ができないようにするには、別の方法があります。

const obj = {
    name : "taro"
};

// 変更
obj.name = "jiro";
// 追加
obj.abe = 25;

console.log(obj)

実行結果

let

「let」の場合は、値の変更が可能です。

let num = 1

console.log(num) // 1

num = 2

console.log(num) // 2

初期値を設定しなくてもエラーにはなりません。

let num

num = 1

console.log(num) // 1

var

「var」は、ほぼ「let」と同じ使い方ができます。

var num

num = 1

console.log(num) // 1

num = 2

console.log(num) // 2

ただし、「let」とは違い、同じ変数を何度も定義できます。

var x = 1
var x = 2

let y = 1
let y = 2 // Uncaught SyntaxError: Identifier 'y' has already been declared

詳しいことは、以下のページを参考にしてください。

簡単に違いをまとめると以下のようになります。

varletconst
再代入不可
再宣言不可不可
スコープ関数スコープブロックスコープブロックスコープ

変数に使用できない名称

変数には使用できない名称があります。

数字自体や先頭に数字を使用することはできません。

let 123 // Uncaught SyntaxError: Unexpected number

let 1st // Uncaught SyntaxError: Invalid or unexpected token

また、以下のように予約語と呼ばれる、javascriptが使用する名称も使用することはできません。

let var // Uncaught SyntaxError: Unexpected token 'var'

予約語には、以下のものが存在します。

「 break 」
「 case 」
「 catch 」
「 class 」
「 const 」
「 continue 」
「 debugger 」
「 default 」
「 delete 」
「 do 」
「 else 」
「 export 」
「 extends 」
「 finally 」
「 for 」
「 function 」
「 if 」
「 import 」
「 in 」
「 instanceof 」
「 new 」
「 return 」
「 super 」
「 switch 」
「 this 」
「 throw 」
「 try 」
「 typeof 」
「 var 」
「 void 」
「 while 」
「 with 」
「 yield 」