[ノンプロ研]GAS初級講座7期DAY4補講

GAS

どうも。つじけ(tsujikenzo)です。2020年11月から始まりましたノンプロ研GAS初級講座7期ですが、このシリーズでは講座中では時間の都合でお伝えできなかったことなどを、全6回+おまけという感じでお届けしております。本日は4回目でございます。

前回のおさらい

前回は「関数・配列」ということで、関数の引数と戻り値そして山場と言える関数リテラル(アロー関数)、配列のリテラル、要素の代入と呼び出しを習いました。

[ノンプロ研]GAS初級講座7期DAY3補講
どうも。つじけ(tsujikenzo)です。2020年11月から始まりましたノンプロ研GAS初級講座7期ですが、このシリーズでは講座中では時間の都合でお伝えできなかったことなどを、全6回+おまけという感じでお届けしております。本日は3回目...

カタカナ語が増えてきてちょっと苦しくなってきましたが💦繰り返しコードを書いて、記憶を定着していきましょう。その為にアウトプットが大事です。人に話したりTweetしたりぬいぐるみに話しかけたり(ラバーダッキングという学習法です)しましょう。

DAY4補講

それではDAY4を振り返ります。今日は「オブジェクト」についてでした。

オブジェクト

プログラミングを学習する時に初級者が「オブジェクト」という単語を完全に理解するには、相当な訓練が必要です。直訳では「物」という意味ですが、現実世界の「物とは〇〇である」という定義が広く、一言で表すのが難しいのと同様です。

これから学習を進めていく上で、何度もオブジェクトさんと出くわし、その度に「ごきげんよう」と言葉を交わし、自らは何も語らないオブジェクトさんに対して我々は「いつもありがとうございます。」と敬意を払うしかないです。(正確に言うと最初にオブジェクトの仕組みを考えた人は天才だなといつも思うだけですw)

配列とオブジェクト

まずは前回習いましたデータの集合の書き方として「配列型」があって、他に「オブジェクト型」というデータの集合の表現方法がある、と捉えていきましょう。

学習のコツ

少し前置きが長くなりましたが、GAS初級講座ではまず「オブジェクトのリテラル」を習得することを目指しましょう。オブジェクトの書き方のルールを徹底的に覚えて、オブジェクトを自分で定義してみて、プロパティを追加したり、プロパティを書き換えたり、プロパティを呼び出したり、後半戦ではメソッドを定義したり、メソッドを呼び出したり、オブジェクトの操作を習得しましょう。

オブジェクトリテラルの基本

オブジェクトは下記のような記述ルール(リテラル)があり、逆にこのルールに従って書くとそれはオブジェクトだとGASは認識してくれます。

  1. オブジェクトは必ず波カッコ{}で囲まれており、
  2. プロパティ(一つ一つの要素)はkey:value形式
  3. プロパティのkeyは文字列型であることが望ましいが、文字列型リテラルで書かなくてもよい。
  4. 複数のプロパティがある時はカンマ区切りで記述しなければなりません。

(過去に詳しく書いたことがあるので、こちらも参考にしていただけたら)

[GAS]オブジェクトリテラルと仲良くなろう【前編】‐2日目‐
どうも。つじけ(tsujikenzo)です。このシリーズでは「2次元配列をオブジェクトに変換する」という内容で全6回でお送りします。今日は第2回目です。引き続きオブジェクト、特にオブジェクトリテラルの基礎について前編・中編・後編としてま...

プロパティの追加と呼び出し方法

プロパティの操作について[ドット記法][ブラケット記法]の2種類の方法があります。それぞれ追加と呼び出しについてまとめます。

“` const person = {id:’tg001’, name:‘つじけ’, age:35, favorite:‘Coffee’}; //追加 person.address = ‘北海道’; //ドット記法 person[‘address’] = ‘北海道’; //ブラケット記法(シングル・ダブルクォーテーションで囲みます)

//呼び出し console.log(person.address); // ‘北海道’; console.log(person[‘address’]); // ‘北海道’; “`

プロパティの追加、と書きましたが、既に同じ名前のキーが存在した場合は値の上書きになります。(ドット記法は割愛します)

“` const person = {id:’tg001’, name:‘つじけ’, age:35, favorite:‘Coffee’, address:‘北海道’}; //追加 person[‘address’] = ‘札幌市’;

//呼び出し console.log(person[‘address’]); // ‘札幌市’; “`

プロパティの定義、呼び出しに変数を使用する

講座中にお伝えした通りですが、こちらについてもブログで詳しく書きましたので、参考になれば幸いです。

[GAS]オブジェクトリテラルと仲良くなろう【前編】‐2日目‐
どうも。つじけ(tsujikenzo)です。このシリーズでは「2次元配列をオブジェクトに変換する」という内容で全6回でお送りします。今日は第2回目です。引き続きオブジェクト、特にオブジェクトリテラルの基礎について前編・中編・後編としてま...

for in 文の取り出し順について

for in文はプロパティの取り出し順が補償されていません。たまたま記述順に取り出されることがありますが(ランダムではありません)、正式には補償されていません。思わぬ結果を招くことがありますので、記述順でプロパティを取り出したい時はfor of文を使いましょう。

文と宣言 - JavaScript | MDN
JavaScript アプリケーションは、適切な構文で書かれた文から構成されます。ひとつの文が数行に渡る場合もあります。また複数の文それぞれがセミコロンで区切られていれば 1 行となる場合もあります。そのキーワードはひとつではなく、キーワードのグループとなっています。

ちなみにES2020ではfor in文の取り出し順が記述順となりました。GASも早く最新のECMAScriptに対応して欲しいものです。

For-in enumeration order

メソッド

オブジェクトのプロパティに関数リテラルで関数を定義したものをメソッドと呼びます。メソッドにはアロー関数は使えません。その代わりにメソッド構文という省略記法があるので覚えといてください。

“` { name: ‘Bob’, age: 25, greet() { console.log(‘Hello!’); } } “`

thisとはなにか

thisとはオブジェクトのことです。しかしまだ「どのオブジェクトなのか」が決まっていないオブジェクトなのです。

thisはthis自身が書かれている場所によってオブジェクトをコロコロ変えることができます。「書かれている場所」というのが、だいたい4パターンしかないので、4つのthisなんて言ったりします。

オブジェクトを操作する場合は、ドット記法で

>オブジェクト.プロパティ

と書きましたよね。このオブジェクトが固定のものならオブジェクト名を書くだけなんですが、時と場合によって変化したいので、

>this.name

のように、thisを使って変化に対応したい、というお話なのです。中級講座でクラスを学ぶ際に再度登場しますので、また機会がありましたら4つのthinについてご紹介したいと思います。

GASの世界

Day4の後半にこの話を持ってくるのは個人的にとても好きです。この話とは「GASとオブジェクトについて」なのですが、今までは基礎の足固めをしっかりやって、いよいよGASのサービス群とこんにちわしましょう、GASでスプレッドシートやGmailを使い倒してやろうという(実際にはお手柔らかにお願いします💦って感じですが)冒険に飛び出す感じです。

GASはJavaScriptをベースとしたスクリプト言語で、ブラウザ内で動作するコードエディタが用意されており(新IDE発表されましたね!ワクワク)、スクリプトはサーバーサイドで実行されます。

そして、JavaScriptはオブジェクト指向と呼ばれる、「スクリプトは全てオブジェクトで操作しようよ」というモチーフで設計されています。つまり、私たちはオブジェクトリテラルやオブジェクトの操作方法を学んだことにより、後はGASのリファレンス(取扱説明書)を読みながら、一人で大海原に出航することができるのです。不安でしょうか?いいえ、きっと皆さんなら大丈夫です。

まとめ

以上で、DAY4の振り返りと補足でした。2020年6月にGAS初級講座5期のTAとして「GASの外の世界」という卒業LTをやりました。(いつかブログにします)「JavaScriptとは何か?」「GASとは何か?」という内容でしたので、ノンプロ研メンバーで興味がある方は是非。

次回はいよいよ『スプレッドシート操作の基礎・前半』です。今まで習った基礎をガンガン使い倒していきます。ワクワクですね~。

このシリーズの目次

  1. [ノンプロ研]GAS初級講座7期DAY1補講 はじめてのGAS
  2. [ノンプロ研]GAS初級講座7期DAY2補講 制御構文
  3. [ノンプロ研]GAS初級講座7期DAY3補講 関数・配列
  4. [ノンプロ研]GAS初級講座7期DAY4補講 オブジェクト・GASの世界
  5. [ノンプロ研]GAS初級講座7期DAY5補講 スプレッドシートの操作
  6. [ノンプロ研]GAS初級講座7期DAY6補講 スプレッドシートの操作(実践編)
  7. [GAS]for文とは何か(歴史編)
タイトルとURLをコピーしました