JavaScript/Identifier
表示
Identifier (識別子)は、JavaScript のプログラム内で変数、関数、プロパティ、ラベルなどを一意に識別するために使用される名前です。識別子はプログラムの各要素に名前を付け、それらを参照するために使用されます[1]。
構文
[編集]識別子の命名規則は以下の通りです:
<IdentifierName> ::= <IdentifierStart> | <IdentifierName> <IdentifierPart> <IdentifierStart> ::= <UnicodeIDStart> | "$" | "_" | "\" <UnicodeEscapeSequence> <IdentifierPart> ::= <UnicodeIDContinue> | "$" | "\" <UnicodeEscapeSequence> | <ZWNJ> | <ZWJ>
- 識別子の構文規則
-
IdentifierName- 識別子の名前を表します。
- 以下のいずれかで構成されます:
IdentifierStart(識別子の最初の文字)IdentifierNameにIdentifierPartを続けたもの(識別子の2文字目以降)
IdentifierStart- 識別子の最初の文字として使用できる文字を定義します。
- 以下のいずれかです:
UnicodeIDStart: Unicodeの「ID_Start」プロパティを持つ文字(例: アルファベット、一部の漢字など)。$(ドル記号)。_(アンダースコア)。\に続くUnicodeEscapeSequence(Unicodeエスケープシーケンス)。
命名規則
[編集]基本的なルール
[編集]- 識別子は文字(a-z、A-Z)、数字(0-9)、アンダースコア(_)、ドル記号($)で構成できます。
- 識別子の最初の文字は文字、アンダースコア、またはドル記号でなければなりません(数字は不可)。
- 識別子は予約語(例:
var、function、returnなど)と同じにすることはできません。 - 識別子は大文字と小文字を区別します(
myVarとmyvarは異なる識別子)。
例
[編集]有効な識別子の例
[編集]以下のプログラムは、有効な識別子の例を示しています。
// 有効な識別子 let name = "John"; let _privateVar = 42; let $price = 19.99; let camelCase = true; let PascalCase = "Class Name"; let number1 = 100; let α = "alpha"; let π = 3.14159; let 名前 = "日本語の識別子";
このプログラムでは、様々な有効な識別子を使用して変数を宣言しています。アルファベット、アンダースコア、ドル記号で始まる識別子や、Unicode 文字を含む識別子も使用可能です。
無効な識別子の例
[編集]以下のプログラムは、無効な識別子の例を示しています。
// 無効な識別子(コンパイルエラーになります) let 1number = 100; // 数字で始まっている let my-variable = "hello"; // ハイフンを含んでいる let var = "reserved"; // 予約語を使用している let function = "reserved"; // 予約語を使用している let my variable = "space"; // スペースを含んでいる
このプログラムでは、JavaScript の識別子の命名規則に違反する例を示しています。これらの識別子を使用するとSyntaxErrorが発生します。
識別子の使用例
[編集]以下のプログラムは、様々なコンテキストでの識別子の使用例を示しています。
// 変数の識別子 let userName = "Alice"; // 関数の識別子 function calculateTotal(price, quantity) { return price * quantity; } // オブジェクトのプロパティの識別子 const user = { id: 1, firstName: "Bob", lastName: "Smith" }; // クラスの識別子 class Person { constructor(name) { this.name = name; // プロパティの識別子 } sayHello() { // メソッドの識別子 console.log(`Hello, ${this.name}!`); } } // ラベルの識別子 outerLoop: for (let i = 0; i < 3; i++) { for (let j = 0; j < 3; j++) { if (i * j >= 3) break outerLoop; console.log(i, j); } }
このプログラムでは、変数、関数、オブジェクトのプロパティ、クラス、メソッド、ラベルなど、様々なコンテキストでの識別子の使用例を示しています。
注意点
[編集]- 予約語:
break,case,catch,class,const,continue,debugger,default,delete,do,else,export,extends,false,finally,for,function,if,import,in,instanceof,new,null,return,super,switch,this,throw,true,try,typeof,var,void,while,with,yieldなどは予約語であり、識別子として使用できません[2]。 - 将来の予約語:
enum,implements,interface,package,private,protected,publicなどは将来の予約語として扱われる場合があります。 - グローバル変数:
window,document,consoleなどのグローバル変数の名前は、混乱を避けるために識別子として使用しないことが推奨されます。 - 命名規則: 一般的に、変数や関数にはキャメルケース(
myVariable)、クラスにはパスカルケース(MyClass)、定数には大文字のスネークケース(MAX_VALUE)を使用することが慣習とされています。