JavaScript はおもにウェブブラウザ上で動作するスクリプト言語です。
var で定義した変数は、再び値を代入したり、再定義することができる。変数のスコープ(有効範囲)は、変数を定義した関数内である。
var x = 1;
x = 2; // 再代入
var x = 3; // 再定義
再代入 | 再定義 | スコープ | |
---|---|---|---|
var | ✓ | ✓ | 関数 |
let | ✓ | ✗ | ブロック |
const | ✗ | ✗ | ブロック |
var で定義した変数は、再び値を代入することができる。再定義することはできない。変数のスコープ(有効範囲)は、変数を定義したブロック内である。
let x = 1;
x = 2; // 再代入
var で定義した変数は、再び値を代入することができない。再定義することもできない。変数のスコープ(有効範囲)は、変数を定義したブロック内である。
const x = 1;
「//
」以降から行末まではコメントとなる。これを単一行コメントという。
コメントの使用例を次に示す。
<script>
function foo() {
// 警告ダイアログを表示する
alert("警告");
}
</script>
「/*
」と「*/
」に囲まれた部分はコメント(注釈)となる。コメントは複数行にわたってもよい。ただし、入れ子(ネスト)にすることはできない。
コメントの使用例を次に示す。
<script>
/*
警告ダイアログを表示する関数
*/
function foo() {
alert("警告");
}
</script>
リテラルとは、プログラムのソースコードにおいて使用される、数値や文字列を直接に記述した定数のことである。
接頭辞 | 説明 | 使用例 |
---|---|---|
なし | 10進数 (decimal) | 15 |
0b | 2進数 (binary) | 0b1111 |
0o | 8進数 (octal) | 0o17 |
0x | 16進数 (hexadecimal) | 0xf |
JavaScriptにおいて、文字列リテラルは文字列をダブルクォーテーション又はシングルクォーテーションで囲んで表す。次にJavaScriptにおける文字列リテラルの例を示す。
var foo = "bar";
alert("bar");
ダブルクォーテーションを含む文字列の場合、文字列をシングルクォーテーションで囲むか、ダブルクォーテーションの前にバックスラッシュを記述する。
var foo = 'Say "Hello"';
var bar = "Say \"Hello\"";
var x = 1;
switch (x % 2) {
case 0:
console.log("even");
break;
case 1:
console.log("odd");
break;
default:
console.log("?");
break;
}
JavaScriptで例外処理を行うには、try catch文を使用する。
try {
// statements
}
catch (e) {
// statements
}
finally {
// statements
}
オブジェクト内以外のthisはグローバルオブジェクトを表す。
var foo = 1;
function getFoo()
{
return this.foo;
}
この場合、this.fooはグローバル変数fooである。
オブジェクト内のthisは自オブジェクトを表す。
var obj = {
foo: 1,
getFoo: function() {
return this.foo;
}
}
この場合、this.fooはobj.fooを表す。
withブロックを使用すると、親オブジェクトの名前を省略することができる。たとえば、次のようなコードがあったとする。
var foo = document.getElementById('foo');
var bar = document.getElementById('bar');
withステートメントを使用すると、上記のコードは次のように記述することができる。
with (document) {
// このブロック内ではdocument.を省略できる
var foo = getElementById('foo');
var bar = getElementById('bar');
}
eval()は、文字列をJavaScriptのコードとして評価するビルトイン関数である。引数にはJavaScriptコードを表す文字列を指定する。
eval()関数の使用例を次に示す。
const formula = "1 + 2";
var answer = eval(formula);
console.log(answer);
変数answerに格納されるのは"1 + 2"という文字列ではなく、式として評価した結果、つまり3である。
もうひとつeval()関数のサンプルコードを次に示す。
const log = "console.log('example');";
eval(log);
このように、JavaScriptのコードを組み立てることができる。
Ecma International 2022. ECMA-262 ECMAScript 2022 language specification