「JavaScript/変数」の版間の差分
削除された内容 追加された内容
訂正。数値変数は number型 |
Semi-Brace (トーク | 投稿記録) M編集の要約なし |
||
1 行
変数 ({{lang-en-short|variable}}) は、データに名前をつけることができる機能です。
JavaScriptの変数は<code>var</code>、{{code|let}}、{{code|const}}キーワードで宣言し
== 変数の自動判定 ==
10 行
<syntaxhighlight lang="html5">
<script>
// x の 2 乗を計算▼
var x = 2;
document.write(x
</script>
</syntaxhighlight>
このようなコードなら、ブラウザが自動的に「2」は数値、xは変数だと判断します。(そもそも変数名に、数値だけからなる文字列は使えない。)
たとえば {{code|var 5 {{=}} 2;}} (「5」を変数として無理やりに使おうとしている。もちろんマチガイ)みたいな表記は禁止されている。
38 ⟶ 35行目:
-->
2
45 ⟶ 42行目:
<syntaxhighlight lang="html5">
<script>
// x
var x = "2";
56 ⟶ 52行目:
とすると、今度は文字「2」のうしろに文字「3」を連結した結果「23」という表示になります。
65 ⟶ 60行目:
<syntaxhighlight lang="html5">
<script>
var
var kazu =
document.write( parseInt(suuji) +
</script>
</syntaxhighlight>
80 ⟶ 75行目:
-->
のように書きます。これなら、文字列型で宣言された「
149 ⟶ 144行目:
== 変数名 ==
JavaScriptの変数名には英数字
* ABCDEFGHIJKLMNOPQRSTUVWXYZ
* abcdefghijklmnopqrstuvwxyz
* 0123456789
* ひらがな
* _
* $
163 ⟶ 158行目:
var primeNumber = 57; // OK
var prime_number = 57; // OK
var prime-number = 57; // SyntaxError、ハイフンは変数名に使えない
</syntaxhighlight>
変数名には[[Java]]と同様、慣習的に<code>var variableNamesLikeThis</code>のような[[:w:キャメルケース|キャメルケース]]が用いられます。どうでもいい変数は<code>var string</code>よりかは<code>var str</code>、あるいは<code>var s</code>のように、気楽に略語が用いられます(外部に公開するメソッド名には略語はあまり用いられません)。
JavaScript 1.5からは日本語を含むUnicode文字、および<code>\uXXXX</code>形式のUnicodeエスケープシーケンスも変数名に使えるようになりました。これらは主にハックに用いられます。
176 ⟶ 169行目:
</syntaxhighlight>
{{anchor|const}}
== 定数 ==
定数(ていすう)は<code>const</code>キーワードで宣言します。
数学において、定数(てい
367 ⟶ 361行目:
(function() {
var dream; //
console.log(dream); // undefined
381 ⟶ 375行目:
<code>var</code>にはこういった問題があるのですが、かといって「常に関数の先頭で全部の変数を宣言するようにし、途中で<code>var</code>を使わないようにする」というのでは、昔の[[C言語|C]]みたいで、あまりに退屈です。ハッカーは問題を解くのに適した言語を''作る''べきで、言語に人間が合わせるべきではありません。そもそもの問題は<code>var</code>がブロックスコープをもたないことにあるのだから、ブロックスコープをもつ<code>var</code>を発明するのが筋です。
{{anchor|let}}
==== let ====
<code>let</code>キーワードで宣言された変数はブロックスコープをもちます。さらに<code>for</code>文の条件式で<code>let</code>で宣言された変数は、<code>for</code>文のブロックの内側にしか見えません。
|