変数宣言
var x = 3;
,
(コンマ)で区切って複数宣言できる
var x = 3, y = 2;
グローバル変数を宣言する
<script>
var x = 3;
</script>
関数内ではローカル変数宣言になる
<script>
(function() { var x = 3; })();
x; //エラー
</script>
空白を使用せず宣言も可能
var/**/x=3;
グローバル変数は var なしでも宣言できる
x = 3;
var なしで変数宣言するとグローバル変数になる
(function f() { x = 3; })()
x; //3
Web ブラウザの JavaScript においては、 グローバル変数は「最上位祖先 window オブジェクト」のプロパティでもある
x = 3;
window.x; //3
条件を満たせば評価
x が[真]のときのみ y を評価
if (x) y;
{}
で括って複数の文を評価できる
if (x) { y; z; }
if の条件を満たさないとき評価
x が真なら y を評価、x が偽なら z を評価
if (x) y; else z;
関数定義または関数式
関数の構造
function f(a, b) { x }
関数は以下の構造で成り立っている
function
キーワード- 関数名 (省略可)
()
丸括弧- 仮引数 (省略可)
{}
波括弧- 文 (省略可)
関数をどこにどう書くかによって「関数定義」か「関数式」かに変化する
おおまかには、以下の規則で変化する
- 式しか書けない場所に書かれた関数は、関数式となる
- 関数名を省略すると、関数式となる
- それ以外の関数は、おおよそ関数定義となる
関数定義は文である
<script>
function f() { x }
</script>
関数定義をすると、関数名と同じ名前の変数を宣言したことになる
<script>
function f() { x }
f(); //x が実行される
</script>
コードは基本的に 上から下へ 向かって実行される が、 関数定義は特殊で、関数定義の上に関数実行の記述があっても良い
<script>
f(); //xが実行される
function f() { x }
</script>
関数式は式である
var g = function f() { x };
関数定義とは違い、関数名と同じ名前の変数を宣言したことにはならない
<script>
var g = function f() { x };
f(); //エラー
</script>
関数式では関数名を省略できる
var g = function() { x };