見出し画像

【GAS】初級の復習 その1(変数・演算・データ型・制御構文)

基本に立ち返る

前々回のエントリーでも書いた通り、ノンプロ研でGAS中級を受けながら、並行して初心者向け講座の復習を開始した。朝の始業前と夜の時間を使って2時間ほどかけて、講座の2日目まで完了。復習した内容は、変数・演算・データ型・制御構文あたり。動画は1.5倍速で見て、やらなくても分かる簡単な演習は飛ばしつつ、多少でも自信がない演習はしっかり取り組んだ。

さすがにすらすらと理解ができて、初期の頃より成長を感じられて素直に嬉しい。ただ、思っていたより自分の知識として定着していないんだなーと感じたところもあり、復習する時間を作って良かった。初級の内容が完全に理解できたと思えたら、中級にも再度挑みたいと思う。

実はわかってなかったこと・使えていなかったこと

初級の2日目までなんて、さすがにほとんど既知の内容かと思いきや、実はわかっていなかったことや使えていなかったことが結構あったので、ログとして残しておく。普通にGASを使いこなせる方には当たり前すぎるレベルなので、少し恥ずかしいけれど自分自身に定着させるためにあえて書く。

console.logを複数出力したいときはカンマで区切る

まさかのこのレベルですよ、奥さん。たぶん知ってはいたけれど(うろ覚え)、意識していなかった。リーダブルコードとしてはあまり望ましくないのかもしれないけれど、スクリプトが意図している通りに動いているか確認するだけの用途なら、まとめてログを出した方が早い。これまで1行ずつ地道に書いてたよ・・・。

function myFunction({
 const name = `Bob`;
 const age = 25;
 console.log(name, age); //Bob 25
}


変数は宣言だけできる

これは1回ペアプロをしたときに教えてもらった記憶があるけれど、使えていなかった。そして、定数は宣言だけできないことも今日知った。for文のカウント変数をブロックスコープ外でも引き続き使いたいシーンとかでは便利かなと思う。ただ、読み手からすると「この変数、なんやねん」となるからあまり良くない気もする。​


switch文

if文やif〜else文でだいたいどうにかなるので、正直switch文はほとんど使ったことがなかったのだけれど、最近受けた中級の宿題でいざ使おうとしたらわからなかったのよ。。。ここで食わず嫌いしたら一生使えなくなる(おおげさ)と思って、改めて初心者講座を見返して宿題や演習にも取り組んだ。

switch (式) {
 case 値1:
   // 式===値1だったときの処理1
   break;
 case 値2:
   // 式===値2だったときの処理2
   break;
 …
 default:
 //処理default
}

「式と一致するcase節の処理を実行する」とテキストに書いてあったけれど、この「式とは何ぞや」というのがよくわかっていなかった(ということがわかった)。で、よくよく復習して以下の点を理解した。

・「式」というけど、別に条件式でなくても良い
・変数も格納できるし、ブール値(true/false)でもいい
・逆にcaseの値に条件式を書くこともできる

割と自由なのねー。switch文、これからは使っていけそうなイメージが湧いた!

typeof演算子

これまた食わず嫌いしていたやつ。ノンプロ研でも「このデータ型、typeofで調べました?」とか会話されているけど、正直ちゃんと理解できていなかったです。テヘペロ

っていうか、「演算子」って何なの?その言葉が理解できていなくて、なんとなく私には縁遠いものだと決めつけていた気がする。

リファレンスによるとtypeofは「単項演算子」らしい。同じ単項演算子は「!(論理否定演算子)」とか「-(引き算ではなく負の値にする方)」などがある。要はこの「typeof」という単語というか記号(?)だけで、演算できる便利な子ということがわかった。

function dataType(){
 console.log(typeof 123); //number
 console.log(typeof `hoge`); //string
 console.log(typeof false); //boolean
 console.log(typeof {}); //object
 console.log(typeof []); //object
}


while文

食わず嫌いの王様、while文。いや、食わず嫌いしすぎでしょ・・とさすがに自分で自分にツッコミを入れざるを得ない。for文が割と早い段階でスッと理解できたことと、無限ループにはまりそうなことが嫌で、実務で本当に1回も書いたことすらないのがwhile文。

while (条件式){
    // 処理(条件式がtrueの間、繰り返す)
}

いや、めちゃシンプルでいいじゃん。for文より短く書ける場面もあるっしょ!がんばれ私!


まとめ

ということで、初心者講座2日目までの復習集大成として、苦手としていたswitch文&while文でFizzBuzz問題にチャレンジ。ちゃんと書けたー!

数字を1から順に100までログ出力します。ただし、
数字が3の倍数のときには数字の代わりに「Fizz」
数字が5の倍数のときには数字の代わりに「Buzz」
数字が3の倍数かつ5の倍数のときには代わりに「FizzBuzz」

と出力するようにしてください。
function fizzBuzz({
 let i = 1;
 while (i <= 100) {
   switch (true) {
     case i % 3 === 0 && i % 5 === 0:
       console.log(`FizzBuzz`);
       break;
     case i % 3 === 0:
       console.log(`Fizz`);
       break;
     case i % 5 === 0:
       console.log(`Buzz`);
       break;
     default:
       console.log(i);
   }
   i++;
 }
}

この記事が気に入ったらサポートをしてみませんか?