Google Apps 脚本:奇怪的“缺少 ; before statement”。错误
Posted
技术标签:
【中文标题】Google Apps 脚本:奇怪的“缺少 ; before statement”。错误【英文标题】:Google Apps Script: strange "Missing ; before statement." error 【发布时间】:2013-07-12 09:32:04 【问题描述】:我正在编写一个简单的脚本来废弃一些报告数字。我收到错误消息“Missing ; before statement.”,这似乎不是对手头问题的准确描述。
我尝试省略部分代码,但错误消息似乎相当随机。我怀疑我正在使用的某些类存在一些问题,但我没有想法。
这是我的代码:
function getStats()
var stats = 'id': '',
'impressions': 0,
'clicks': 0,
'conversions': 0,
'cpa': 0,
'cost': 0,
campaignIterator = AdWordsApp.campaigns().get(),
campaign,
campaignstats;
Logger.log('Fetching stats for last 7 days.');
while (campaignIterator.hasNext())
var campaign = campaignIterator.next();
var campaignstats = campaign.getStatsFor('LAST_7_DAYS');
var stats['impressions'] = stats['impressions'] + campaignstats.getImpressions();
var stats['clicks'] = stats['clicks'] + campaignstats.getClicks();
var stats['conversions'] = stats['conversions'] + campaignstats.getConversions();
var stats['cost'] = stats['cost'] + campaignstats.getCost();
var stats['cpa'] = stats['cost']/stats['conversion'];
function main()
getStats();
感谢您的帮助!
【问题讨论】:
通过 linter 运行您的代码:例如jshint.com 错误在哪一行弹出? 不幸的是,没有提到这条线。这是一个功能有限的浏览器内 IDE。 【参考方案1】:从while
循环内的每一行及其后面的语句中删除var
语句。
除了所有这些变量都已经定义的事实(尽管重新声明同一个变量不会导致错误)之外,您还会遇到语法错误,因为您不能在变量声明中包含方括号,如下所示:
var stats['impressions'] = ...
试试这个:
while (campaignIterator.hasNext())
campaign = campaignIterator.next();
campaignstats = campaign.getStatsFor('LAST_7_DAYS');
stats['impressions'] += campaignstats.getImpressions();
stats['clicks'] += campaignstats.getClicks();
stats['conversions'] += campaignstats.getConversions();
stats['cost'] += campaignstats.getCost();
stats['cpa'] = stats['cost']/stats['conversion'];
还请注意,我冒昧地介绍了+=
operator。以下两个语句是等价的,但后者的输入更少并且(可以说)更易于阅读:
x[y] = x[y] + z;
x[y] += z;
【讨论】:
工作正常。谢谢你的回答。 @UstavGupta - 我不知道,但var stats
本身就是一个有效的行,并且以方括号开头的行也是有效的,所以它可能需要一个分号指出将两者分开并解决眼前的问题。当然,这会导致同一行出现不同的错误,但是解释器/编译器无法读懂你的想法来猜测你实际上想在那里做什么。通常它会报告错误的行号,所以至少你知道在哪里看。以上是关于Google Apps 脚本:奇怪的“缺少 ; before statement”。错误的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 Apps 脚本在 Google 表格中“清除格式”