CHAPTER 1 · 19 LESSONS · 247 問

文法のきほん

値を表示する、計算する、名前をつける、条件で分ける。プログラムの土台になる書き方をひととおり。

プログラムというと、何か複雑なものを想像するかもしれない。でも中身をほどいていくと、やっていることは驚くほど少ない。値を扱い、名前をつけて覚えておき、状況によってやることを変える。この章で覚えるのは、その3つだけだよ。

最初にやるのは「画面に出す」こと。console.log と書いて、出したいものを渡す。それだけで文字も数字も表示できる。地味に見えるけれど、これは書いたコードが本当に動いたかを確かめる唯一の手段になる。この先ずっと使い続けるので、ここで手になじませておこう。

次が 値の種類 の話。JavaScript では、文字を扱うときは "こんにちは" のように引用符で囲み、数を扱うときは 100 のようにそのまま書く。見た目が似ていても、"100"100 はコンピュータにとって別物だ。文字どうしを + でつなぐと連結になり、数どうしを + でつなぐと足し算になる。この違いは初学者が最初につまずくところで、後で出てくるバグの半分くらいはここが原因になる。

そして 変数。同じ値を何度も書くかわりに、名前をつけて置いておく。let price = 150 と書けば、以後は price と書くだけでその値を呼び出せる。値を1か所で直せば全部に反映されるので、書き直しが一気に楽になる。名前のつけ方にもコツがあって、a より price のほうがいい。三日後の自分が読んで分かるかどうかが基準だよ。

章の後半は 条件分岐。ここでプログラムがはじめて「判断」を持つ。if を書いて、条件が成り立つときだけ中の処理を動かす。成り立たないときの処理は else、もう一段階の分岐は else if。条件そのものは >=== といった比較で作り、&&|| で組み合わせる。

条件分岐でよくつまずくのが、==== の取りちがえ= は「右の値を左に入れる」で、=== は「左と右が同じか」を尋ねる。まったく別の意味なので、書きまちがえると意図しない動きになる。この章で体に入れておこう。

条件が3つ以上に増えるときのために switch も扱う。同じ変数を何度も比べるだけの else if が続くなら、こちらのほうが読みやすい。ただし break を書き忘れると次の分岐まで続けて動いてしまうので、そこだけ注意だよ。

この章を進めるときのコツをひとつ。エラーが出たら、まずそのまま読んでみること。英語だからと閉じてしまう人が多いけれど、書いてあることは意外と単純だ。「x is not defined」なら「x なんて知らない」、つまり変数を作る前に使っているか、名前を打ちまちがえている。エラーメッセージは敵ではなく、いちばん近くにいる先生だよ。

この教材では、エラーをブラウザが出したそのままの形で見せている。日本語に直したり、やさしく言いかえたりしていない。実際の開発で目にするのはこの形だから、早いうちから慣れておいてほしいからだよ。

ここまで終われば、「入力を受け取って、条件で分けて、結果を出す」という形のプログラムが書けるようになる。まだ小さなプログラムだけれど、この形はどれだけ大きなアプリになっても変わらない。何万行のシステムでも、やっていることは値を受け取り、判断し、結果を出すことの積み重ねだよ。

急ぐ必要はない。この章の内容は、この先ずっと毎日使うものばかりだ。ここで手が覚えるまでやっておくと、あとの章がずっと楽になるよ。

この章のレッスン

文字と数を表示する

  1. 01はじめてのJavaScriptconsole.log を使って、書いたものを画面に表示してみよう。 問題へ
  2. 02文字と数値の書き分け" で囲むと文字、囲まないと数値。この違いを見分けられるようになろう。 問題へ
  3. 03計算してみよう+ - * を使って、数値を計算した結果を表示しよう。 問題へ
  4. 04わり算とあまり/ でわり算、% であまりを求めよう。 問題へ
  5. 05文字をつなげる同じ + が、数値なら足し算、文字列なら連結になることを確かめよう。 問題へ

値に名前をつける

  1. 06変数を学ぼう値に名前をつけて、あとから何度でも使えるようにしよう。 問題へ
  2. 07変数を使う理由同じ値を使いまわす・意味を名前で示す・直す場所を1か所にする。変数の3つの利点を体感しよう。 問題へ
  3. 08変数の値を更新する一度入れた変数に、あとから別の値を入れ直してみよう。 問題へ
  4. 09更新を短く書くcount = count + 1 を += や ++ で短く書けるようになろう。 問題へ
  5. 10定数を学ぼうあとから書き換えない値は const で宣言しよう。 問題へ
  6. 11文字列に変数を埋め込むバッククォートと ${} を使って、+ の連結より読みやすく書こう。 問題へ

条件で分ける

  1. 12もしも、で処理を分けるif を使って、条件が成り立つときだけ動くコードを書こう。 問題へ
  2. 13true と false条件の正体は true / false という値。比較すると真偽値が返ってくることを確かめよう。 問題へ
  3. 14等しいかどうかを調べる=== で「等しい」、!== で「等しくない」を判定しよう。 問題へ
  4. 15そうでなければ、を書くelse を使って、条件が成り立たなかったときの処理を書こう。 問題へ
  5. 163つ以上に分けるelse if を並べて、上から順に条件を判定しよう。 問題へ
  6. 17条件を組み合わせる&&(かつ)、||(または)、!(否定)で複数の条件をひとつにまとめよう。 問題へ
  7. 18値ごとに振り分けるswitch を使って、ひとつの値がどれと一致するかで処理を分けよう。 問題へ
  8. 19どれにも当てはまらないときswitch の default で、想定外の値もきちんと受け止めよう。 問題へ

つぎは「くり返しとデータの持ち方」。同じ処理を何回もくり返し、たくさんの値をまとめて持つ。プログラムが一気に実用的になるところ。