JavaScript

JavaScript はおもにウェブブラウザ上で動作するスクリプト言語です。

var

var で定義した変数は、再び値を代入したり、再定義することができる。変数のスコープ(有効範囲)は、変数を定義した関数内である。

var x = 1;
x = 2; // 再代入
var x = 3; // 再定義
再代入 再定義 スコープ
var 関数
let ブロック
const ブロック

let

var で定義した変数は、再び値を代入することができる。再定義することはできない。変数のスコープ(有効範囲)は、変数を定義したブロック内である。

let x = 1;
x = 2; // 再代入

const

var で定義した変数は、再び値を代入することができない。再定義することもできない。変数のスコープ(有効範囲)は、変数を定義したブロック内である。

const x = 1;

// comment

// 」以降から行末まではコメントとなる。これを単一行コメントという。

コメントの使用例を次に示す。

<script>
  function foo() {
    // 警告ダイアログを表示する
    alert("警告");
  }
</script>

/* comment */

/*」と「*/」に囲まれた部分はコメント(注釈)となる。コメントは複数行にわたってもよい。ただし、入れ子(ネスト)にすることはできない。

コメントの使用例を次に示す。

<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\"";

switch case

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

オブジェクト内以外の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

withブロックを使用すると、親オブジェクトの名前を省略することができる。たとえば、次のようなコードがあったとする。

var foo = document.getElementById('foo');
var bar = document.getElementById('bar');

withステートメントを使用すると、上記のコードは次のように記述することができる。

with (document) {
  // このブロック内ではdocument.を省略できる
  var foo = getElementById('foo');
  var bar = getElementById('bar');
}

eval()

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