本日はJavaScriptの変数,if,switchなどについてです。なんとか三日坊主にならずに済みました。今日も頑張ります。
初めての人はお金持ちまでの道のり:0日目をまず読んでみてください!よろしくお願いします★
JavaScriptとは?
ウェブページを動かすためのプログラム言語です。例えば、ボタンをクリックすると動く、計算を自動で行うなどの機能を作ることができます。
JavaScriptでは、「変数」と「条件分岐」を使って、動きをコントロールします。最初は、この2つを簡単に説明します。
変数って何?
変数は、データを保存するための「箱」のようなものです。たとえば、名前や年齢を覚えるために使います。
例:(ここでは、変数=myName、変数「myName
」の中に保存されている値が「たろう」)
let myName = "たろう";
ここで、myName
という名前の箱を作り、その中に「たろう」という名前を入れています。
※let
は、JavaScriptで変数を宣言するためのキーワードです。変数とは、データを一時的に保存しておく「箱」のようなものだと思ってください。let
を使うと、その「箱」にデータを入れて、後でそのデータを使ったり、変更したりすることができます。
※let 変数名:この変数は名称を自由に決められます。(予約語は使えない、組み込み関数は避ける、数字では始めない、$や_以外の特殊文字は使えない)
条件分岐って何?
条件分岐は、「もし~なら」とか「もし~じゃなかったら」という場合分けをする仕組みです。例えば、名前が「たろう」なら「こんにちは、たろう!」と表示し、それ以外なら「こんにちは、ゲスト!」と表示します。
例:
let myName = "たろう";
if (myName === "たろう") {
console.log("こんにちは、たろう!");
} else {
console.log("こんにちは、ゲスト!");
}
このコードでは、もし myName
が「たろう」なら「こんにちは、たろう!」と表示され、そうでなければ「こんにちは、ゲスト!」が表示されます。
※見やすいようにNは大文字になっているが小文字でも構わない。最初のmは小文字の方が良い。変数名は小文字から、クラス名は大文字で始めることが多い。
※クラスはオブジェクトを作成するための設計図のようなもの、のちのち出てくるのでここでは割愛
自分の名前の部分に「たろう」と入力すれば「こんにちは、たろう!」、それ以外の名前を入力すれば「こんにちは、ゲスト!」のコンソール画面に表示される。
※F12で表示されるコンソール画面は開発者専用、ユーザー(閲覧者)は見ることができない
HTML内にJavaScriptを記述するとき
JavaScriptコードを必ず <script></script>
タグの中に書きます。
<script>
let myName = "自分の名前"; // 自分の名前をここに入れる
if (myName === "たろう") {
console.log("こんにちは、たろう!");
} else {
console.log("こんにちは、ゲスト!"); }
</script>
「=」について
=
(1つ): これは「代入」を意味します。右側の値を左側の変数に代入するために使います。
- 例:
let myName = "たろう";
→myName
に「たろう」という値を代入します。
===(3つ): これは「厳密な比較」です。データ型も含めて、左側と右側が「完全に同じか」を確認します。
- 例:
if (myName === "たろう")
→myName
が文字列「たろう」と厳密に一致しているかをチェックします。
==(2つ): これは「緩やかな比較」です。データ型が異なる場合でも、JavaScriptが自動的に型変換して比較を行います。ただし、
=== が推奨されることが多いです。
- 例:
5 == "5"
→ この場合、数字の5
と文字列の"5"
は同じと見なされます(型変換されます)。
※「=」の前後にあるスペースは必須ではない。見やすくするためにスペースがあるだけ。
文字列を表す方法
''
(シングルクォーテーション) と ""
(ダブルクォーテーション) のどちらでもOK。CSSでも同様。
「//」と「/* */」の違い(JavaScriptとCSSでの違い)
JavaScriptでは、//
で1行コメント、/* */は複数行のコメントに使います。1行コメントで/* */は不可。
※CSSでは1行コメントでも複数行コメントでも/* */を使います。
/*
これは複数行のコメントです
複数行にわたって説明を書けます
*/
{}
の意味(JavaScriptとCSSでの違い)
JavaScriptでは、処理のブロックや複数のコードをグループ化するために {}
を使います。if
や for
などの条件やループ文、または関数で使います。
if (myName === "たろう") {
console.log("こんにちは、たろう!");
}
CSSでは、スタイルルールの塊を囲むために {}
を使います。例えば、どの要素にどんなスタイルを適用するかを定義するために使います。☆
h1 {
color: red;
font-size: 20px;
}
console.logの意味
console.log
は、JavaScriptでデバッグや確認のために使うとても便利な機能です。簡単に言うと、プログラムの中での情報や結果を「表示」するためのコマンドです。
console.log()
を使うと、ブラウザの「コンソール」という場所にテキストや値を表示できます。プログラムが正しく動いているか確認したり、変数の値をチェックしたりするために使います。
閲覧者はこのコンソールに表示される「こんにちは、たろう!」を見ることはできません。F12で確認できるコンソール情報を見ることで、開発者がコードが機能しているかどうかを確認します。開発者が途中の計算結果が合っているか確認したい場合、画面に表示するのは閲覧者にとっては不要な情報です。
let myName = "〇〇";
if (myName === "たろう") {
console.log("こんにちは、たろう!");
} else {
console.log("こんにちは、ゲスト!");
}
※〇〇にたろうと入力すれば「こんにちは、たろう!」、それ以外だと「こんにちは、ゲスト!」となる。開発者だけがコンソール画面でこの結果を確認できる。
JavaScriptの条件分岐を深める
既に if
文を使った条件分岐を少し触れているので、条件分岐をさらに深く理解しましょう。if
文に加えて、else if
を使った複数の条件処理や、switch
文も学んでおくと良いです。
範囲を比較するとき:if
文は、値の範囲を扱う場合(例えば score >= 90
など)、複雑な条件を扱う場合に適しています。論理演算(&&
, ||
など)や比較式を使いたいときには、if
文が便利です。
特定の値を直接比較するとき:1つの変数が特定の値に等しいかをチェックする場合、switch
文はコードがシンプルで見やすくなります。特に、選択肢が多い場合は、switch
が適しています。
else if
:複数の条件を設定する
if (①条件1) {
// ②条件1が成立した場合の処理
} else if (③条件2) {
// ④条件2が成立した場合の処理
} else {
// ⑤どの条件も成立しなかった場合の処理
}
①~⑤を埋めていく感じです。例がこちら↓
let score = 85;
if (score >= 90) {
console.log("優秀!");
} else if (score >= 70) {
console.log("良い成績!");
} else {
console.log("もっと頑張りましょう!");
}
「let score = 〇」の数字を90以上にすると「優秀!」、70以上で「良い成績!」、70未満で「もっと頑張りましょう!」とコンソール画面に表示されます。
・if
文は、「もしこの条件が成立するなら、こうしなさい」という指示。
・else
文は、「もし条件が成立しなかったら、こうしなさい」という指示。
・else if
文を使うと、複数の条件に応じて異なる動作をさせることができる。
条件が増えたらこんな感じ↓(else if
文を追加するだけ)
if (条件1) {
// 条件1が成立した場合の処理
} else if (条件2) {
// 条件2が成立した場合の処理
} else if (条件3) {
// 条件3が成立した場合の処理
} else {
// どの条件も成立しなかった場合の処理
}
switch
:複数の条件分岐をシンプルに書く
次に学ぶのは**switch
文**です。switch
文は、複数の条件分岐をシンプルに書くための構文です。1つの変数が特定の値に等しいかをチェックする場合、switch
文はコードがシンプルで見やすくなります。特に、選択肢が多い場合は、switch
が適しています。
●switch
文の基本構文
switch (評価する値) {
case 値1:
// 値1の場合に実行される処理
break;
case 値2:
// 値2の場合に実行される処理
break;
default:
// どの条件にも一致しない場合に実行される処理
}
・switch (評価する値) の中には、チェックしたい変数や式を入れます。
・各 case では、その評価値が何に一致するかを確認し、一致した場合の処理を記述します。※break
必須
・default は、どの case にも当てはまらない場合に実行される処理を指定します(else のような役割)。
例:switch
文の使い方
let fruit = "バナナ";
switch (fruit) {
case "りんご":
console.log("りんごは赤いです。");
break;
case "バナナ":
console.log("バナナは黄色いです。");
break;
case "ぶどう":
console.log("ぶどうは紫です。");
break;
default:
console.log("その果物は見つかりませんでした。");
}
・let
ここでは、変数がfruit、その変数の中に保存されている値がバナナです。
繰り返しになりますがlet
は、JavaScriptで変数を宣言するためのキーワードです。変数とは、データを一時的に保存しておく「箱」のようなものだと思ってください。let
を使うと、その「箱」にデータを入れて、後でそのデータを使ったり、変更したりすることができます。
・let fruit = "バナナ";
バナナの部分を変更するとコンソール画面に表示される文章が変わります。
fruit = "バナナ"; → 「バナナは黄色いです。」
fruit = "りんご"; → 「りんごは赤いです。」
fruit = "ぶどう"; → 「ぶどうは紫です。」
fruit = "オレンジ"; → 「その果物は見つかりませんでした。」
・switch (〇〇) {△△}
〇〇の部分にはチェックしたい変数(fruit)が入っています。
JavaScriptでは、処理のブロックや複数のコードをグループ化するために {△△} を使います。
※CSSでは、スタイルルールの塊を囲むために {}
を使います。★
・case 〇〇: ~ break;
〇〇の部分に入れた値が、変数の値と一致するかどうかを処理します。ここでは変数の値がバナナなので、"バナナは黄色いです。"
がコンソールに表示されます。
if
/ else if
では、特に終了を明示するための break
は必要ありませんが、switch
の case
では、break
が必須です。
※breakで終了させず意図的に次の case
に進む(フォールスルーさせる)場合もあります。(同じ処理を複数のケースで行いたい場合↓↓)
let fruit = 〇〇";
switch (fruit) {
case "りんご":
case "バナナ":
case "みかん":
console.log("この果物は甘いです。");
break;
default:
console.log("その果物は見つかりませんでした。");
}
※変数〇〇の値が、りんご
、バナナ
、みかん
の場合、同じ処理(「この果物は甘いです」)が実行されます。↑↑
・breakのおまけ
let fruit = "バナナ";
switch (fruit) {
case "りんご":
console.log("りんごは赤いです。");
break;
case "バナナ":
console.log("バナナは黄色いです。");
break;
case "ぶどう":
console.log("ぶどうは紫です。");
break; //このbreakを削除したらどうなるか?
default:
console.log("その果物は見つかりませんでした。");
}
・fruit の値が "バナナ" の場合:
「バナナは黄色いです。」 が表示されます。break があるので、そこで switch 文が終了します。
・fruit の値が "ぶどう" の場合:
「ぶどうは紫です。」 が表示されますが、break がないため、そのまま次の default ケースに進みます。
その結果、「その果物は見つかりませんでした。」 も表示されます。
・結果(ぶどうを選んだ場合)
「ぶどうは紫です。」
「その果物は見つかりませんでした。」
・default:
default は、どの case にも当てはまらない場合に実行される処理を指定します(else のような役割)。
コロン(:
):条件に基づいて処理の開始を示します。switch
文では、各 case
の条件が満たされた場合、その後の処理を開始するためにコロンを使います。
セミコロン(;
):命令(ステートメント)の終了を示します。各命令が終了したことを伝えるためにセミコロンを使います。例えば、console.log
の後にセミコロンを付けることで、その出力処理が終わったことを示します。
JavaScriptの主な組み込み関数や予約語
主な組み込み関数
alert()
- 画面にポップアップメッセージを表示します。
- 例:
alert("こんにちは!");
console.log()
- コンソールにメッセージを出力します。
- 例:
console.log("デバッグ用のメッセージ");
parseInt()
- 文字列を整数に変換します。
- 例:
let number = parseInt("123"); console.log(number); // 123
parseFloat()
- 文字列を浮動小数点数に変換します。
- 例:
let number = parseFloat("123.45"); console.log(number); // 123.45
isNaN()
- 引数が数値でない場合に
true
を返します。 - 例:
console.log(isNaN("123abc")); // true
setTimeout()
- 指定した時間(ミリ秒後)に関数を1回だけ実行します。
- 例:
setTimeout(function() { console.log("3秒後に実行されます"); }, 3000);
setInterval()
- 指定した時間(ミリ秒ごと)に関数を繰り返し実行します。
- 例:
setInterval(function() { console.log("毎秒実行されます"); }, 1000);
Math.random()
- 0以上1未満のランダムな数値を返します。
- 例:
let randomNum = Math.random(); console.log(randomNum); // 例: 0.72634
Math.floor()
- 数値の小数点以下を切り捨てます。
- 例:
let rounded = Math.floor(4.9); console.log(rounded); // 4
Date()
- 現在の日時を取得します。
- 例:
let now = new Date(); console.log(now);
主な予約語(キーワード)
var
- 変数を宣言します。
- 例:
var name = "太郎";
let
- ブロック内でスコープが限定される変数を宣言します。
- 例:
let age = 25;
const
- 定数を宣言します。再代入はできません。
- 例:
const pi = 3.14159;
if
- 条件分岐を行います。
- 例:
if (age > 18) { console.log("成人です"); }
else
if
文の条件が成り立たない場合の処理を定義します。- 例:
if (age > 18) { console.log("成人です"); } else { console.log("未成年です"); }
for
- ループ処理を行います。
- 例:
for (let i = 0; i < 5; i++) { console.log(i); }
while
- 条件が真の間、ループ処理を行います。
- 例:
let i = 0; while (i < 5) { console.log(i); i++; }
return
- 関数の処理結果を返します。
- 例:
function add(a, b) { return a + b; }
function
- 関数を定義します。
- 例:
function greet() { console.log("こんにちは!"); }
class
- クラスを定義します。
- 例:
class Person { constructor(name, age) { this.name = name; this.age = age; } }
try
- 例外が発生しうるコードを記述します。
- 例:
try { throw new Error("エラー発生!"); } catch (e) { console.log(e.message); }
catch
try
ブロック内で発生したエラーをキャッチします。- 例:
try { throw new Error("エラー発生!"); } catch (e) { console.log(e.message); }
break
- ループ処理を途中で終了します。
- 例:
for (let i = 0; i < 10; i++) { if (i === 5) { break; } console.log(i); }
continue
- ループの次の反復にスキップします。
- 例:
for (let i = 0; i < 5; i++) { if (i === 2) { continue; } console.log(i); }
もっとたくさんの組み込み関数と予約語を見たい場合ははこちら
JavaScript ローカル&グローバル変数,無名&アロー関数 9日目 2024/10/15(お金持ちまでの道のり)
本日の感想
Javascriptになってから難易度が上がった気がします。本当に大丈夫か不安。。。でもできなかったことができるようになることはうれしいし、なんか面白い未来が待っていそうな気がしなくもないような気がします。学習内容の目次を作らないと復習に手間取るので近いうちに作ります。ということで私と一緒に1からプログラミングを学びませんか?
3日目の記事はこちら
CSS初級編 3日目 2024/10/9(お金持ちまでの道のり)
ここに初めて来た人はゼヒ0日目を読んでください。プログラミング知識0のおじさんがお金持ちになるまでのプランと熱い思いが載っています。私と一緒に運要素を排除したゴリゴリの脳筋プレイでお金持ちを目指しませんか?
0日目の記事はこちら
お金持ちまでの道のり:0日目
コメント