JavaScript

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

目次

  1. 変数
    1. var
    2. let
    3. const
    4. 配列
  2. リテラル
    1. 0b
    2. 0o
    3. 0x
    4. e
    5. "string"
    6. 'string'
  3. 制御構文
    1. switch case
    2. try
  4. 演算子
    1. 算術演算子
    2. +
    3. -
    4. *
    5. /
    6. %
    7. 比較演算子
    8. ==
    9. ===
    10. !=
    11. !==
    12. <
    13. <=
    14. >
    15. >=
    16. in
    17. instanceof
    18. typeof
    19. 論理演算子
    20. &&
    21. ||
    22. !
    23. ビット演算子
    24. <<
    25. >>
    26. >>>
    27. 代入演算子
    28. =
    29. +=
    30. -=
    31. *=
    32. /=
    33. %=
    34. <<=
    35. >>=
    36. >>>=
    37. &=
    38. |=
    39. ^=
  5. コメント
    1. // comment
    2. /* comment */
  6. 組込み関数
    1. function
    2. encodeURIComponent()
    3. eval()
    4. isNan()
  7. オブジェクト
    1. Array
    2. Date
    3. element
      1. checkbox
      2. form
      3. option
      4. radio
      5. select
    4. event
    5. Math
    6. String
    7. this
    8. window
      1. console
      2. document
      3. history
      4. localStorage
      5. location
      6. navigator
      7. screen
      8. sessionStorage
  8. ライブラリ
    1. Google Apps Script (GAS)
    2. jQuery
    3. Google code prettify

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