Google Apps Script 기본문법 - 1

Page content

개요

  • Google Apps Script의 기본문법을 배우도록 한다.
  • 변수와 상수, 배열, 객체등을 테스트 한다.

자바스크립트 기초

  • 기초 문법을 배우도록 한다.
  • 아래와 같이 코드 생성 후 실행을 한다.
function myFunction() {
  Logger.log("Hello World");
}

Untitled

  • 여러 함수를 만들고 선택적으로 실행이 가능하다.
  • 주석 처리는 크게 // /* */ 으로 할 수 있다.
function myFunction01_1() {
  Logger.log("Hello World");
}

function myFunction01_2() {
  console.log("Hello GAS!")

  // 주석 입력
  /*
  여러 행에 걸쳐 주석을 입력한다. 
  */
}

Untitled

  • 스크립트 편집기에서는 [Ctrl] + [/] 를 이용하면 주석처리가 가능하다.

변수와 상수

변수 선언

  • 자바스크립트에서 변수 선언 시, let 키워드를 사용한다.
  • 선언만 한 변수는 값이 대입되기 전까지는 정의되지 않은 상태를 나타내는
function myFunction01_3() {
  let num;
  num = 10;
  console.log(num); // 10
}

Untitled

상수선언

  • 변수를 덮어 썼을 때 변경되지 않도록 하고 싶을 때
function myFunction01_4() {
  const tax = 1.08;
  console.log(tax); // 1.08
}

Untitled

변수명 또는 상수명 규칙

  • 첫번째 글자는 숫자, 일부(_(언더스코어), $(달러))를 제외한 기호나 문자는 사용할 수 없다.
  • 예약어는 사용할 수 없다.
    • break, default, false, instanceof, this, while, case, delete, finally, let, throw, with, catch, do, for, new, true, class, else, function, null, try, const, enum, if, return, typeof, continue, export, import, switch, var, debugger, extends, in, super, void
  • 대문자와 소문자는 구별한다.
function myFunction01_5() {
  console.log(typeof 100);
  console.log(typeof "evan");
  console.log(typeof true);
  console.log(typeof {});
}

Untitled

  • typeof 연산자를 사용하여 데이터 타입 확인
  • 출력된 로그에서 number, string, boolean, object 인 것 확인

수치 표현

  • 정수, 소수, 16진수 로그 출력
function myFunction01_6() {
  console.log(100);
  console.log(1.08);
  console.log(0xFFFF);
  console.log(1000000000000000000000000000000000000);
  console.log(0.00000001);
}

Untitled

문자열 리터럴과 이스케이프 시퀀스

  • 큰 따옴표와 작은 따옴표
function myFunction01_7() {
  console.log('Hello "GAS"!');
  console.log("I'm 'fine'");
}

Untitled

템플릿 문자열

  • 사용 예시 : 기호와 중괄호를 이용해 ${식 (expression)}으로 플레이스홀더(placeholder)
function myFunction01_8() {
  const name = 'Evan';
  const age = 30;

  console.log(`I'm ${name}. I'm ${age} years old.`);
}

Untitled

  • 이번에는 줄바꿈과 들여쓰기가 그대로 로그에도 반영된 것 확인
function myFunction01_9() {
  
  console.log(`Hello\n\'GAS'\!`);
}

Untitled

undefined와 null

  • undefined는 정의되지 않은 상태를 의미한다.
  • 값이 정의되지 않았음을 나타내는 값이다.
  • null은 해당하는 값이 없음을 의미하는 특수한 값을 나타냄.
function myFunction01_10() {

  let x;
  console.log(x); // undefined  
}

Untitled

배열(Array)

  • 여러 데이터를 모아서 집합으로 다루는 방법 중 하나
  • 여러 값을 콤마로 구분하고 전체를 로 감싼다.
  • 인덱스는 0번째부터 시작한다.
function myFunction01_11() {

  // 배열
  const numbers = [10, 20, 30, 40];
  console.log(numbers[2]); // 30
}

Untitled

  • 배열 안의 특정 요소에 대입 시 입력
function myFunction01_12() {

  // 배열
  const numbers = [10, 20, 30, 40];

  numbers[1] = 50; // 인덱스 1(20)의 요소를 50으로 변경
  numbers[4] = 60; // 인덱스 4는 존재하지 않기 때문에 요소 추가

  console.log(numbers); // [10, 50, 30, 40, 60]
}

Untitled

  • 2차원 배열
function myFunction01_13() {

  // 배열
  const numbers = [[10, 20, 30, 40], [11, 31, 21]];

  console.log(numbers);
  console.log(numbers[0]); // [10, 20, 30, 40]

  numbers[1] = [22, 32];
  console.log(numbers); 
}

Untitled

  • 여러 변수나 상수에 배열 요소를 모아서 대입하고 싶을 때는 분할 대입 이용하면 편리
function myFunction01_14() {

  // 배열
  const numbers = [10, 20, 30, 40];
  let a, b, c, d;
  [a, b, c, d] = numbers;
  console.log(a, b, c, d); // [10, 20, 30, 40]

  const [name, age, favorite] = ['Evan', 30, 'apple']
  console.log(name, age, favorite); 
}

Untitled

  • 배열의 특정한 위치에서 각각의 요소로 전개하고 싶을 때 스프레드 구문을 사용함.
...array
function myFunction01_15() {

  // 배열
  const numbers = [10, 20, 30, 40];
  const numbers2 = [0, ...numbers, 50];
  
  console.log(numbers2);
}

Untitled

객체

  • 속성을 key로 하는 데이터의 집합이며 속성명은 임의의 문자열이다.
function myFunction01_17() {

  // 객체
  const person = {name : "evan", gender : "male", age : 30};

  // 객체 참조 
  console.log(person.name);
  console.log(person['age']);
}

Untitled

  • 이번에는 속성값을 변경하도록 한다.
function myFunction01_18() {

  // 속성 대입과 추가 
  const person = {name : "evan", gender : "male", age : 30};
  console.log(person.name);

  person['name'] = "sarah";
  person['job'] = "programmer";
  console.log(person);
}

Untitled