「JavaScript/変数」の版間の差分

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
const に関する記述を移動。また変数がメモリ管理に関与しているやの記述を修正。
Ef3 (トーク | 投稿記録)
→‎変数名: [識別子を使って説明を再構成。
190 行
 
== 変数名 ==
JavaScriptの変数名は、関数・プロパティ・ラベルなどとおなじく識別子(しきべつし;Identifier)の規約に従います。
JavaScriptの変数名には英数字、アンダースコア(_)、ドル記号($)、日本語圏 (JavaScript 1.5から)の文字が使用できます。大文字・小文字は区別されます。
JavaScriptの識別子は、Unicode の文字、$、_、数字(0-9)からなります。識別子は大文字小文字を区別します。
 
識別子は数字(0-9)からはじまってはいけません。
* ABCDEFGHIJKLMNOPQRSTUVWXYZ
また予約語(よやくご;keyword)を識別子に使うことは出来ません。
* abcdefghijklmnopqrstuvwxyz
変数名は関数名との重複は許されませんがラベル名との重複は許されます。
* 0123456789
* ひらがな
* _
* $
 
ただし、ほかの多くの言語と同様に、変数名の先頭に数字を用いることはできません(これは<code>0xbad</code>のような数値との混同を防ぐためと考えられます)。ハイフン(-)は使えないことに注意してください。また、<code>class</code>などのキーワードも変数名に用いることはできません。
 
<syntaxhighlight lang="JavaScript">
207 ⟶ 202行目:
</syntaxhighlight>
 
変数名には[[Java]]と同様、慣習的に<codesource lang="javascript" inline>var variableNamesLikeThis</codesource>のような[[:w:キャメルケース|キャメルケース]]が用いられます。どうでもいい変数は<code>var string</code>よりかは<code>var str</code>、あるいは<code>var s</code>のように、気楽に略語が用いられます(外部に公開するメソッド名には略語はあまり用いられません)
外部に公開しない変数はあえて短めにし、一時的な変数であることを伝えようとする傾向がありますが、コーディング規約で定めていない限りリラックスした名付けが行われます。
 
ただし日本語の単語をローマ字表記した変数名は単数複数の区別がないので <source lang="javascript" inline>for (let item in items)</source>の様な名付けが行えなかったり、'''月'''のつもりで '''tuki''' と綴ったら ReferenceError: '''tsuki''' is not defined と翻字のゆらぎでミスタイプとなる可能性を増やすので推奨しません(この例ではtukiがmoonなのかmonthなのかにも曖昧さが生じ、いっそ <source lang="javascript" inline>var 月</source> の方が良いのかもとさえ思えます)。
JavaScript 1.5からは日本語を含むUnicode文字、および<code>\uXXXX</code>形式のUnicodeエスケープシーケンスも変数名に使えるようになりました。これらは主にハックに用いられます。
 
Unicodeの文字が有効なので
<syntaxhighlight lang="JavaScript">
var π = 4 * Math.atan(1);
</syntaxhighlight>
は正しいプログラムです。
 
Unicodeの文字の中に「いわゆる全角スペース」は含まれません。
 
{{anchor|const}}
 
== 定数 ==
定数(ていすう)は<code>const</code>キーワードで宣言します。