1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Eloquent JavaScript 2章読んだ

Last updated at Posted at 2019-10-29

前振り

Eloquent JavaScriptの1から4章まで読んでいるのでその記録にメモを残していく。

2. Program Structure

実際にプログラムと呼ぶものを扱う

  • バインディング

    • プログラムがどのように内部情報を保持するか?
    • jsはbindingまたはvariableと呼ぶものを提供する
      • let catch = 5 * 5
      • バインディングが上記のように値を示す場合、それは = で新たに別の値を保持することができる
      • バインディングは箱ではなく触手のようなものを想像するとイメージしやすい。
  • バインド名

    • 任意の単語を使用可能。ただし以下の制約がある
      • 先頭文字を数字で始めることはできない
      • $_を含めることは可能だが他の特殊文字は使用できない
      • 以下のコードブロック記載の単語は予約語であり、バインド名には使用できない。(一部のみ記載。予約語は他にもある)
break case catch class const continue debugger default
delete do else enum export extends false finally for
function if implements import interface in instanceof let
new package private protected public return static super
switch this throw true try typeof var void while with yield
  • 環境

    • 特定の時間に存在するバインディングとその値のコレクションは環境と呼ばれる
    • プログラム起動時にもからではなく、言語標準の一部であるバインディングが含まれている状態である
  • 関数

    • 関数名の後にカッコ()を入れることで呼び出しが可能
    • 例: prompt("test", 4)
      image.png
    • arguments
      • 関数に与えられる値。prompt関数の("test", 4)の部分
  • 戻り値

    • 関数が値を生成するとその値を返す。
  • 制御フロー

    • 基本的に上から下に向けて順次実行する。ただし以下のような例外もある
    • 条件付き実行
      • if分岐
    • ループ
      • while
      • do
      • for
      • switch文での値のディスパッチ
  • インデントコード

    • 必須ではないがコードの構造をに安くするために有用
      • インデントコードは半角スペース2つを用いる人がいれば4つを用いる人もいる。
  • 大文字

  • コメント

    • 以下の文字列の後ろはコメントになる
      • //

演習

  • Looping a triangle
// Your code here.
for( step=0; step < 8; step++){
	console.log("#".repeat(step));
}
  • FizzBuzz
// Your code here.
for (step=1; step < 101; step++ ){
  if(step % 15 == 0) {
    console.log('step: FizzBuzz', step);
  }
  else if( step % 3 == 0 ){
    console.log('step: fizz', step);
  }
  else if(step % 5 == 0) {
    console.log('step: buzz', step);
  }
}
  • Chessboard
// Your code here.
for (step=1; step < 9; step++ ){
  if(step % 2 == 0) {
    console.log('# # # #');
  }
  else {
    console.log(' # # # #');
  }
}

#参考文書

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?