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>

リテラル

リテラルとは、プログラムのソースコードにおいて使用される、数値や文字列を直接に記述した定数のことである。JavaScriptにおいて、文字列リテラルは文字列をダブルクォーテーション又はシングルクォーテーションで囲んで表す。次にJavaScriptにおける文字列リテラルの例を示す。

var foo = "bar";
alert("bar");

ダブルクォーテーションを含む文字列の場合、文字列をシングルクォーテーションで囲むか、ダブルクォーテーションの前にバックスラッシュを記述する。

var foo = 'Say "Hello"';
var bar = "Say \"Hello\"";

typeof

JavaScriptのデータ型はtypeof演算子で判定することができる。

var x = 1;
if (typeof x === "number") {
  console.log("number")
} if (typeof x === "string") {
  console.log("string")
} if (typeof x === "boolean") {
  console.log("boolean")
} if (typeof x === "null") {
  console.log("null")
} if (typeof x === "object") {
  console.log("object")
} if (typeof x === "array") {
  console.log("array")
} if (typeof x === "undefined") {
  console.log("undefined")
}

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のコードを組み立てることができる。

reverse()

配列の要素の順序を逆にするには、reverse メソッドを使用する。

const array = [1, 2, 3];
const reversed = array.reverse();
console.log(reversed);

getFullYear()

Date.getFullYear() は年を西暦で返す。

var today = new Date();
var year = today.getFullYear();
console.log(year);

getHours()

Date.getHours() は時を24時間制で返す。

var today = new Date();
var hours = today.getHours();
console.log(hours);

getMinutes()

Date.getMinutes() は分を返す。

var today = new Date();
var minutes = today.getMinutes();
console.log(minutes);

getSeconds()

Date.getSeconds() は秒を返す。

var today = new Date();
var seconds = today.getSeconds();
console.log(seconds);

GmailApp.sendEmail()

Gmail でメールを送信するには、GmailApp.sendEmail() を使用する。

const mailto = "example@gmail.com";
const subject = "Hello";
const body = "Hello, everyone.";
GmailApp.sendEmail(mailto, subject, body);