復習
久しぶりの開催で、初めてのメンバーもいたのでまずは今までに習った用語の解説から
変数
値(数字・文字など)を入れておく「名前のついた箱」です。
let name = "たろう"; // 名前を入れた変数
let age = 20; // 年齢を入れた変数
let isStudent = true; // true/false も入れられる
let や const を使って変数を作ります。
const は「変えられない定数」に使います。
| 変数名 | 中身 | 型の種類 |
| name | "たろう"(文字) | 文字列(String) |
| age | 20(数字) | 数値(Number) |
| isStudent | true(はい) | 真偽値(Boolean) |
関数
何かの作業をまとめておいた「命令のセット」です。使いたいときに呼び出せば、同じ作業を何回でもできます。
function greet(name) {
console.log("こんにちは、" + name + "さん!");
}
greet("たろう"); // 実行すると:こんにちは、たろうさん!
greet("はなこ"); // 実行すると:こんにちは、はなこさん!
| 部分 | 意味 |
| function | 関数を定義するキーワード |
| greet(name) | 「greet」という関数、name は受け取る値(引数) |
| console.log() | 結果を表示する命令(ブラウザの開発者ツールで見える) |
| greet("たろう") | 関数を実行(呼び出し) |
複数の値を1つにまとめたデータのグループです。数字の順番(インデックス)でアクセスできます。
let fruits = ["りんご", "バナナ", "みかん"];
console.log(fruits[0]); // りんご
console.log(fruits[1]); // バナナ
console.log(fruits.length); // 3(全部で何個あるか)
| 書き方 | 意味 |
| [] | 配列の記号 |
| fruits[0] | 配列の1番目の値(0番から数える) |
| .length | 要素の数(長さ) |
function showFruits(list) {
for (let i = 0; i < list.length; i++) {
console.log(i + 1 + "つ目の果物:" + list[i]);
}
}
showFruits(fruits);
// 実行結果:
// 1つ目の果物:りんご
// 2つ目の果物:バナナ
// 3つ目の果物:みかん
Stack
コンピュータで用いられる基本的なデータ構造のひとつで、データを後入れ先出し(LIFO: Last In First Out; FILO: First In Last Out)の構造で保持するものである。
後入れ先出し、この考えがとても重要です。
変数の可視性
その変数を参照できるコード内の範囲、つまりスコープのこと。
関数内でしか使えない変数、を実現するためにスタックを使っている。
ハノイの塔
ハノイの塔を題材に取り組もう
ハノイの塔をブラウザ上で作ってみるか、または、ハノイの塔を解くプログラムを組んでみよう。
ハノイの塔を解くプログラムは、スタック構造の考え方が必要になってきます。
*COMMENT*
下川 春樹
*コメント*
久しぶりの開催となった今回は、初参加のメンバーもいたため復習を兼ねて、簡単な用語の解説から入りました。が、簡単な用語の解説がパッと出来ず、スタートからやらかしてしまいました。
また、後半のコードを書いていくパートでは、ちょっと前にお題のあったプログラムを実際にやった方からコードを発表する形でした。が、そこでもNさんが書いたコードがとても高度できちんと動いており、衝撃を受けてしまいました。。。
全くついて行けていない感が否めませんので、基礎をしっかり学び、どんどんコードを書いて追いつけるようにしていきます!!
*コメント*
則岡 えり
*コメント*
今日は、初めて参加のメンバーもたくさんいたので「Jacasciptの書き方を初めての方に説明する」というところからスタートでした。
私が発表させていただきましたが、話しながら自分で「この説明では伝わらないなー」と思いました。
人わかりやすく伝えられるように、努力していかないといけないと思いました。
そのあとはスタック構造について学びました。後入れ先出しの考え方です。
普段書いているJavascriptも、実はスタック構造になっていると教えていただきましたが、少し難しかったです。
後半はハノイの塔を題材に取り組みました。
「ハノイの塔をブラウザ上で再現する」か「ハノイの塔を解くプログラムを作る」のどちらかにチャレンジしてみようとお題をいただき、
「ハノイの塔を解くプログラムを作る」について少し考えてみたのですが全く分からなかったです。
Tさんが作ったものがまさにそれで、自動でパズルが動いていてカッコよかったです。
解説を聞くとなんとなく仕組みは理解できましたが、書けと言われてもまだ書けそうにないです。でもいつかはチャレンジしたいです。
*コメント*
石川 航
*コメント*
初めての参加でしたが、もっと早く出ておけばよかったと今さら思っています
Javascriptは業務の中で関わる部分を断片的にしか扱っていなかったので
改めて基本から学び直して業務に活かしていきます
*コメント*
恩田 かおり
*コメント*
初めて参加させていただきました。
Javascriptの書籍を何冊か読んだのですが、頭に入っていることはほぼなく、毎回必要に迫らせて、検索をしたり試行錯誤していますので、これを機にしっかり学びたいと思います。
とはいえ、最後のハノイの塔はどうプログラミングしたらいいか全く検討もつかず、まずは手本となるコードを見て自分なりに解釈をしていきます。
*コメント*
*コメント*