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
は異なる識別子)。
例
[編集]有効な識別子の例
[編集]以下のプログラムは、有効な識別子の例を示しています。
// 有効な識別子letname="John";let_privateVar=42;let$price=19.99;letcamelCase=true;letPascalCase="Class Name";letnumber1=100;letα="alpha";letπ=3.14159;let名前="日本語の識別子";
このプログラムでは、様々な有効な識別子を使用して変数を宣言しています。アルファベット、アンダースコア、ドル記号で始まる識別子や、Unicode 文字を含む識別子も使用可能です。
無効な識別子の例
[編集]以下のプログラムは、無効な識別子の例を示しています。
// 無効な識別子(コンパイルエラーになります)let1number=100;// 数字で始まっているletmy-variable="hello";// ハイフンを含んでいるletvar="reserved";// 予約語を使用しているletfunction="reserved";// 予約語を使用しているletmyvariable="space";// スペースを含んでいる
このプログラムでは、JavaScript の識別子の命名規則に違反する例を示しています。これらの識別子を使用するとSyntaxError
が発生します。
識別子の使用例
[編集]以下のプログラムは、様々なコンテキストでの識別子の使用例を示しています。
// 変数の識別子letuserName="Alice";// 関数の識別子functioncalculateTotal(price,quantity){returnprice*quantity;}// オブジェクトのプロパティの識別子constuser={id:1,firstName:"Bob",lastName:"Smith"};// クラスの識別子classPerson{constructor(name){this.name=name;// プロパティの識別子}sayHello(){// メソッドの識別子console.log(`Hello, ${this.name}!`);}}// ラベルの識別子outerLoop:for(leti=0;i<3;i++){for(letj=0;j<3;j++){if(i*j>=3)breakouterLoop;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
)を使用することが慣習とされています。