見出し画像

【ノンプロ研GAS中級講座】組み込みオブジェクト

ごきげんよう、な~です。健康第一!ノンプロ研のGAS中級講座を受講しています。

今回は組み込みオブジェクトについて勉強しました。

組み込みオブジェクト

GASはJavaScriptがベースとなっているのでJavaScriptの機能として、もともと用意されているオブジェクト(組み込みオブジェクト)が使えます。

代表的なものとして
Number(数値)
String(文字列)
Boolean(ブール値)
Array(配列)
Function(関数)
RegExp(正規表現)
Date(日付)
Math(数学関連)
などがあります。
なんとなくGAS初心者コースの1回目を思い出すのですが、そんな人も多かったハズ。今回は、それぞれ組み込みのオブジェクトについて学んでいきます。

プリミティブ型

変数(ラッパーオブジェクト)はオブジェクト。
new String(値)のように書いて各クラスからインスタンスを生成することもできるそうです。でも、通常は、constで定義をします。new String(値)でインスタンスを作成するコードは見かけたことがありません。今回初めてみました。 new しないのがルールだそうです。

プリミティブ型とは、文字列や数値などの値そのものを管理するデータ型です。
根本的な型であるため基本の型といえます。
また、プリミティブ型は不変の型と呼ぶこともあるそうです。constで定義したときには、変更しようとするとエラーになりますね。

プリミティブ型は、変数自体の中に値そのものを保持し、これ以上値を変更することのできない不変な値を持つことが特徴だそうです。

主なプリミティブ型のメンバー
Number
String
Boolen

そしてプリミティブ型に対応した3つの関数
Number関数  文字列を数値にしたり
String関数 数値を文字列にする
Boolean関数 ブール値にする
それぞれそのプリミティブ値を生成して返します。

Stringオブジェクト

文字列を取り扱う組み込みラッパーオブジェクト。

文字列は、シングルクォーテーションやダブルクォーテーションで囲ったり、バックティック「‘」で囲ったテンプレート文字列、String関数やStringオブジェクトのメソッド ['Foo'].toString() を使って生成します。

Stringオブジェクトにはいくつかのメンバーがあり、文字列を便利に扱うことができます。

そして講座の中で注目したのはこれ

Stringオブジェクト.split(区切り文字)く

区切り文字が現れるごとに配列の要素に格納し、戻り値として返します。
※区切り文字には空白や複数文字、正規表現なども使えるそうです。

Arrayオブジェクト

配列を取り扱う組み込みオブジェクト。

[要素1,要素2,・・・・]

と表します。

new Array(要素数)

でインスタンスを生成することもできるそうです。この場合、各要素はnullになります。

Arrayオブジェクトには、たくさんのメンバーがあります。

また、メソッドは3つの種類にわけられます。

中二病をくすぐるかはよくわかりませんが、破壊的メソッドという呼び方はあまり好きになれません。私はよく配列が変更されるのを利用してコードを書いているからかもしれません。

反復メソッドは、配列の各要素にいろいろします。

someは、配列の要素が関数fncを満たすか判定する
filterは、配列の要素のうち関数fncを満たす要素のみで新しい配列を生成する
mapは、配列の各要素について関数fncを呼び出し、その結果を配列として返す
と習いました。
まだまだ、慣れないです。使っていくウチに慣れていくことと思いますので使うよう努力したいと思います。

Dateオブジェクト

日付・時刻を取り扱う組み込みオブジェクトです。

new Date()

Dateオブジェクトを生成します。引数で日時を表す渡すことでその日時のDateオブジェクトを生成できます。

Unixエポックを習いました。
1970年1月1日午前0時0分0秒からの経過ミリ秒数で日付を表します。

Dateオブジェクトの主なメソッドとしては、
getFullYear()
getMonth()
getDate()
setFullYear()
setMonth()
setDate()
のようにgetとsetが対になってメソッドが存在します。

またgetMonth()とsetMonth()は、1~12月を0~11で表すことに注意が必要です。

Mathオブジェクト

数学関連を取り扱う組み込みオブジェクト。
メンバーはすべて「静的メンバー」で、インスタンスを生成することはしません。
インスタンスを生成せずに直接呼び出せます。

Mathオブジェクトは、端数の切り上げや四捨五入などによく利用するイメージです。他にも最大値、最小値を求めたり、乱数の作成などにも利用されます。

まとめ

今回は組み込みオブジェクトについて学びました。
組み込みオブジェクトというと難しい感じがしましたが、GAS初級講座で習った変数を思い出したり、Mathオブジェクトなど普段なじみのないオブジェクトまでいろいろと知ることができました。

私は、反復メソッドの習得に注力したいと思っています。


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