長いので、別ページに致しました。
業種、役職関係なく...実際、世界中の人がそれぞれの業務を頑張ってる、そう頑張ろう
###JavaScript (ES6) 計算関数 (FizzBuzz問題) より
####④が重要です。 代入後に比較。####
JSの面白さが増します。
####(引数についてJavaScript ES6 )
##【 max関数】##
const num1 = 1;
const num2 = 40;
const num3 = 60;
let maxNum = (a,b,c) => {
let max = a;
if (b > max) {
max = b;
} if (c > max) {
max = c;
}return max;
}
const maaax = maxNum(num1,num2,num3);
console.log(`最大値は${maaax}です。`);
ーーーーー
<コンソール結果>
最大値は60です
###【補足】###
if (条件) {
条件が真・trueであれば実行
}
else if (条件) {
ifの条件が偽・false、かつelse ifの条件が真・trueの場合の処理を書く
} else {
if、else if のいずれも当てはまらない場合の処理を書く
}
##余談【最大値を求めるメソッドの場合はもっとシンプル】##
const num1 = 1;
const num2 = 40;
const num3 = 60;
console.log(`最大値は${Math.max(num1, num2, num3)}です。`);
ーーーーー
<コンソール結果>
最大値は60です
#ここから解説#
####・maxを簡単にmとしてみました。####
(maxと書けば最大値になるわけではもちろん無い、がハッキリわかる様に...)
####・a,b,cを同じくnum1,num2,num3としました。####
(逆の考え方では、引数num1,num2,num3は、違う引数名a,b,cでも可。違う名でも引数が渡されるに変わりは無い。と言う事になります。)今回は、登場する単語数を減らし、分かりやすくしました。
###順序は [①引数を指定→②引数を基にアロー関数で処理する→③→④→⑤→⑥] + [❻(); で関数を呼びだしている。]###
returnする意味: return文は関数の実行を終了して、関数の呼び出し元に返す値を指定します。
MDN参照
const num1 = 1;
const num2 = 40;
const num3 = 60;
let ⑥maxNum = (②、num1,num2,num3) => {
let m = num1; ・変化するのでconstではなくlet
③、 m を num1 にまず決めておく。
その場合、ifの処理がなければ、mはnum1のままなので、
比較するために、ここからmの条件分岐作業。
if (num2 > m) { ④、もし、mよりnum2が大きいなら、 m を num2とし、
(ここでm = num2となり、mに代入され、次にnum3 > num2の比較となる。
決して大元mとの比較では無い。ここ理解 最重要。 )
m =num2; もし、mよりnum3が大きいなら、 m を num3とする。
} if (num3 > m) { この結果をreturnする。
returnをする意味:値を返す為。return無しでは(`最大値はundefinedです。となってしまう。
m =num3;
}return m; //←ここの③④の結果が=⑥に代入される
}
❻maxNum(①、maxNumの引数として → num1,num2,num3 この3つを②へ渡す);
console.log(`最大値は${maxNum}です。`);
ーーーーー
<コンソール結果>
最大値は
(num1,num2,num3) => {
let m = num1;
if (num2 > m) {
m =num2;
} if (num3 > m) {
m =num3;
}return m;
}
です
####と、中身の式が出てしまう。####
####maxNum の結果だけほしいので、 maxNumを const maaax として代入し、(今回は大袈裟にmaaaxとした)####
####最大値は${maaax}です。
とする。####
つまり以下
const num1 = 1;
const num2 = 40;
const num3 = 60;
let maxNum = (num1,num2,num3) => {
let m = num1;
if (num2 > m) {
m =num2;
} if (num3 > m) {
m =num3;
}return m;
}
const maaax = maxNum(num1,num2,num3);
console.log(`最大値は${maaax}です。`);
ーーーーー
<コンソール結果>
最大値は60です
補足 これでも考え方はもちろん同じ
.......
let max = num3; //let max = なにか を基準に以下分岐処理;
if (num1 > max) {
max =num1;
} if (num2 > max) {
max=num2;
}return max;
}
この最大値を考えた人、すごい!