建設予定地

当面はやったことの備忘録

GAS入門とV8ランタイム

せっかくAmazon Kindle Unlimitedの無料体験中なので、そろそろ本腰入れてGAS入門するぞ、とGoogle Apps Scriptステップアップガイドを始めてみた。

www.amazon.co.jp

以下、躓いた部分のメモ。

 

  • 発生した問題

doGetメソッドの実行でエラー

TypeError: output.append is not a function(行 12)

 

  • 該当箇所

// コード.gs

function doGet() {
var output =
HtmlService.createTemplateFromFile('index');
return output.evaluate().setTitle('Sample page');
}

function getData() {
return ["Windows","Mac OS X","Linux"];
}

 

// index.html

<style>
h1 {font-size:16pt;
background:#AAFFAA;padding:5px;}
p {margin:10px;}
</style>
<h1>Sample page</h1>
<ol>
<?
var datas = getData();
for(var i=0;i<=datas.length;i++){
if(datas[i]==undefined){ break; }
output*1.append('<li>'+datas[i]+'</li>');
}
?>
</ol>

  

  • 解決

V8ランタイムを無効にする

 

GASが旧RhinoランタイムからV8ランタイムに対応した関係*2で、一部の構文が使えなくなってしまった模様。V8ランタイムは現在のJavascriptの標準規格であるECMAScriptに準拠していて、こちらの方がよりモダンなJSを書けますよ、ということらしい。

今回はRhinoエンジンにダウングレードしたことで問題解消。

 

公式V8ドキュメント

developers.google.com

英弱なのでこちらも参照。

qiita.com

*1:GASの暗黙オブジェクト

*2:2020年2月6日より