最近GASを書く機会があって中々便利だなと思ったので、以前書いた記事を文字ってGASの基礎文法をまとめてみました。
押さえたい基礎
9つの分野に分けて紹介します。
変数・定数宣言
3種類あります。
In
function sampleLet() {
let num = 4;
console.log(num);
}
Out
4
In
function sampleConst() {
const USER_ID = "hoge";
console.log(USER_ID);
USER_ID = "fuga";
}
Out
hoge
TypeError: Assignment to constant variable.
var
とlet
ではスコープが違うようです。(for文については後述)
In
function sampleVarFor() {
for (var i = 0; i < 3; i++) {
console.log(i);
}
console.log(i);
}
Out
0
1
2
3
In
function sampleLetFor() {
// ブロックスコープ
for (let i = 0; i < 3; i++) {
console.log(i);
}
console.log(i);
}
Out
0
1
2
ReferenceError: i is not defined
算術演算子
演算子を確認します。
In
function sampleCalc() {
console.log(1 + 3);
console.log(3 - 1);
console.log(2 * 3);
console.log(9 / 3);
console.log(9 % 2);
console.log(3 ** 3);
}
Out
4
2
6
3
1
27
コレクション
複数の値を持つことができるデータ構造について学びます。
In
function sampleArray() {
let array = [1, 2, 3];
console.log(array[0]);
}
Out
1
In
function sampleObject() {
let object = {
hoge: 1,
fuga: 2
};
console.log(object.fuga); // ドット記法
console.log(object["fuga"]); // ブラケット記法
}
Out
2
2
条件分岐
GASにおける条件分岐は、if、else if、elseになります。
In
function sampleIf() {
let num = 1;
if (num === 1) {
console.log(num);
}
}
Out
1
GASは比較をするとき、適した型に変換しようとするそうです。そのため、型もあっているかまで確認したいときは===
を使用します。
In
function sampleCheck() {
console.log("1" == 1);
console.log("1" === 1);
}
Out
true
false
In
function sampleIfElseif() {
let num = 0;
if (num > 0) {
console.log("0より大きい");
} else if (num === 0) {
console.log("0です");
}
}
Out
0です
In
function sampleIfElseifElse() {
let num = -1;
if (num > 0) {
console.log("0より大きい");
} else if (num === 0) {
console.log("0です");
} else {
console.log("0より小さい");
}
}
Out
0より小さい
ループ処理
ループ処理の基本を押さえます。
In
function sampleFor() {
for (let i = 0; i < 5; i++) {
console.log(i);
}
}
Out
0
1
2
3
4
インクリメント(1を加算する)とデクリメント(1を減算する)
In
function sampleIncrementDecrement() {
let x = 0;
let y = 0;
x++
y--
console.log(x);
console.log(y);
}
Out
1
-1
In
function sampleWhile() {
let num = 0;
while (num < 5) {
console.log(num);
num++;
}
}
Out
0
1
2
3
4
In
function sampleForIn1() {
let nums = [10, 20, 30];
for (let num in nums) {
console.log(num);
}
}
Out
0
1
2
In
function sampleForIn2() {
let object = {
hoge: 1,
fuga: 2
};
for (let k in object) {
console.log(k);
}
}
Out
hoge
fuga
In
function sampleForOf() {
let nums = [10, 20, 30];
for (let num of nums) {
console.log(num);
}
}
Out
10
20
30
In
function sampleBreak() {
for (let i = 0; i < 5; i++) {
if (i == 3) {
break;
}
console.log(i);
}
}
Out
0
1
2
In
function sampleContinue() {
for (let i = 0; i < 5; i++) {
if (i == 3) {
continue;
}
console.log(i);
}
}
Out
0
1
2
4
論理演算子
論理演算子は3種類あります。
In
function sampleAnd() {
if (0 && 1) {
console.log("真");
} else {
console.log("偽");
}
}
Out
偽
In
function sampleOr() {
if (0 || 1) {
console.log("真");
} else {
console.log("偽");
}
}
Out
真
In
function sampleNot() {
if (!(0 || 1)) {
console.log("真");
} else {
console.log("偽");
}
}
Out
偽
関数
関数は必要な時に何度でも呼び出すことができるので、同じコードを何回も書かなくて済みます。
In
function calcFunc(a, b) {
return a + b;
}
function mainFunc() {
v = calcFunc(5, 9);
console.log(v);
}
Out
14
例外処理
例外処理の基本を学んでエラーに慣れましょう。
In
function sampleTryCatch() {
try {
const USER_ID = "hoge";
USER_ID = "fuga";
} catch (e) {
// 例外オブジェクト
console.log(e);
}
}
Out
[TypeError: Assignment to constant variable.]
In
function sampleTryCatchFinally() {
try {
const USER_ID = "hoge";
// USER_ID = "fuga";
} catch (e) {
// 例外オブジェクト
console.log(e);
} finally {
console.log("例外が発生する・しないに関わらず実行される");
}
}
Out
例外が発生する・しないに関わらず実行される
メソッド
メソッドをいくつか紹介します。
メソッドとは、オブジェクトに対する命令です。
In
function sampleReplace() {
let s = "田中様";
console.log(s.replace("様", "さん"));
}
Out
田中さん
In
function sampleSlice() {
let s = "Google Apps Script";
console.log(s.slice(0, 6));
}
Out
Google
In
function sampleSplit() {
let s = "Google,Apps,Script";
console.log(s.split(","));
}
Out
[ 'Google', 'Apps', 'Script' ]
In
function sampleConcat() {
let nums = [10, 20, 30];
new_nums = nums.concat([40, 50, 60]);
console.log(new_nums);
}
Out
[ 10, 20, 30, 40, 50, 60 ]
In
function samplePush() {
let nums = [10, 20, 30];
nums.push(40);
console.log(nums);
}
Out
[ 10, 20, 30, 40 ]
In
function sampleForEach() {
const nums = [10, 20, 30, 40, 50];
nums.forEach(function(num, i){
console.log(i, num);
});
}
Out
0 10
1 20
2 30
3 40
4 50
おわりに
最後までお読みいただきありがとうございました!
少しでも参考になれば幸いです。