【三章】確認問題

業務の効率化のためのプログラミング入門」というシリーズの記事です。

三章では「GASはじめの一歩」と題してJavaScriptの初歩的な文法を学びました。

今回はおさらいを兼ねて、簡単な演習問題をご用意しました。実際に自分で考えてプログラムを書いてみると、理解度が深まりますのでぜひ挑戦してみてください。

回答例はページの最後にまとめて記載します。

変数

問題

次のプログラムを使って、「私の好物はハンバーガーです」というログを出力してください。

console.log("私の好物は" + food + "です")

変数について復習したい場合はこちらの記事を参照してください。

数値と計算

問題

次のプログラムの実行結果を予想してください。

function myFunction() {
  let answer = (1 + 4 / 2) * 2 + 1
  console.log("計算結果:" + answer)
}

数値と計算について復習したい場合はこちらの記事を参照してください。

文字列

問題

次の2つのプログラムの挙動がなぜ異なるのか、文字列と数値の違いに着目して説明してください。

function myFunction() {
  let number1 = "1"
  let number2 = "2"
  let answer = number1 + number2

  console.log(answer)
}

実行結果

12
function myFunction() {
  let number1 = 1
  let number2 = 2
  let answer = number1 + number2

  console.log(answer)
}

実行結果

3

文字列について復習する場合は、こちらの記事を参照してください。

配列

問題

以下の配列と同じ内容の配列をpushを使って作成してください。

["佐藤", "鈴木", "高橋", "小林"]

配列について復習する場合は、こちらの記事を参照してください

エラーメッセージとデバッグ

次のプログラムを実行するとエラーが出力されます。

原因を特定して、意図した動作になるようにプログラムを修正してください。

function myFunction() {
  let nameArray = ("佐藤", "鈴木", "小林")

  // 配列の末尾に「田中」を追加する
  nameArray.push("田中")
  console.log(nameArray)
}

回答例

各演習問題の解答例

変数

function main() {
  let food = "ハンバーガー"
  console.log("私の好物は" + food + "です")
}

変数は「let 変数名」で定義します。

数値と計算

計算結果:7

計算順の優先度は以下の通りです。

  1. 「()」で囲われた中を計算
  2. 掛け算、割り算を計算
  3. 左側から順番に計算

この法則の通りに「(1 + 4 / 2) * 2 + 1」を計算すると・・・

「4 / 2 = 2」→「1 + 2 = 3」→「3 * 2 = 6」→「6 + 1 = 7」の順番で計算し、最終的な答え「7」を導き出します。

文字列

number1とnumber2の変数に文字列、数値どちらが格納されているかで挙動が変わっています。

「+」で変数をつなぐとき、数値として値が格納されているときは数値計算として解釈される。

一方、文字列として値が格納されているときは文字列の結合として解釈される。

という挙動の違いがありました。

配列

function myFunction() {
  let nameArray = []
  nameArray.push("佐藤")
  nameArray.push("鈴木")
  nameArray.push("高橋")
  nameArray.push("小林")
  console.log(nameArray)
}

エラーメッセージとデバッグ

エラーメッセージを確認すると5行目でエラーが発生していることがわかります。pushが呼び出せないことが直接的な原因のようです。

なぜ、pushが呼び出せないのでしょうか。

根本の原因は配列の定義方法が間違っているからです。配列の定義は「[]」で囲う必要があります。今回の問題では「()」で囲われているため配列として定義されず、pushを使えなかったのです。

let nameArray = ("佐藤", "鈴木", "小林")

改修後のプログラムは以下の通りです。

function myFunction() {
  let nameArray = ["佐藤", "鈴木", "小林"]

  // 配列の末尾に「田中」を追加する
  nameArray.push("田中")
  console.log(nameArray)
}