JavaScript/Identifier

カテゴリ:Book:JavaScript#Identifier%20

Identifier識別子)は、JavaScript のプログラム内で変数関数プロパティラベルなどを一意に識別するために使用される名前です。識別子はプログラムの各要素に名前を付け、それらを参照するために使用されます[1]

構文

識別子の命名規則は以下の通りです:

<IdentifierName> ::= <IdentifierStart>
                   | <IdentifierName> <IdentifierPart>

<IdentifierStart> ::= <UnicodeIDStart>
                    | "$"
                    | "_"
                    | "\" <UnicodeEscapeSequence>

<IdentifierPart> ::= <UnicodeIDContinue>
                   | "$"
                   | "\" <UnicodeEscapeSequence>
                   | <ZWNJ>
                   | <ZWJ>
識別子の構文規則
IdentifierName
識別子の名前を表します。
以下のいずれかで構成されます:
  • IdentifierStart(識別子の最初の文字)
  • IdentifierNameIdentifierPart を続けたもの(識別子の2文字目以降)
IdentifierStart
識別子の最初の文字として使用できる文字を定義します。
以下のいずれかです:
  • UnicodeIDStart: Unicodeの「ID_Start」プロパティを持つ文字(例: アルファベット、一部の漢字など)。
  • $(ドル記号)。
  • _(アンダースコア)。
  • \ に続く UnicodeEscapeSequence(Unicodeエスケープシーケンス)。
IdentifierPart
識別子の2文字目以降に使用できる文字を定義します。
以下のいずれかです:
  • UnicodeIDContinue: Unicodeの「ID_Continue」プロパティを持つ文字(例: 数字、結合文字など)。
  • $(ドル記号)。
  • \ に続く UnicodeEscapeSequence(Unicodeエスケープシーケンス)。
  • <ZWNJ>ゼロ幅非接合子、U+200C)。
  • <ZWJ>ゼロ幅接合子、U+200D)。

命名規則

基本的なルール

  • 識別子は文字(a-z、A-Z)、数字(0-9)、アンダースコア(_)、ドル記号($)で構成できます。
  • 識別子の最初の文字は文字、アンダースコア、またはドル記号でなければなりません(数字は不可)。
  • 識別子は予約語(例:varfunctionreturn など)と同じにすることはできません。
  • 識別子は大文字と小文字を区別します(myVarmyvar は異なる識別子)。

有効な識別子の例

以下のプログラムは、有効な識別子の例を示しています。

// 有効な識別子
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);
  }
}

このプログラムでは、変数、関数、オブジェクトのプロパティ、クラス、メソッド、ラベルなど、様々なコンテキストでの識別子の使用例を示しています。

注意点

脚註

  1. 識別子は JavaScript プログラムの構造を形成する基本的な要素の一つです。
  2. ただし、オブジェクトのプロパティ名'クラス名メソッド名には、予約語を使用できます。

外部リンク

カテゴリ:Book:JavaScript#Identifier%20 カテゴリ:JavaScript
カテゴリ:Book:JavaScript カテゴリ:JavaScript カテゴリ:Pages using the JsonConfig extension