constants - 未定义参考错误 const。我不明白为什么
问题描述
我有一个像这样的简单脚本
function importazione() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const wsd = ss.getSheetByName("morosi");
wsd.getRange(2,1,1000,10).clearContent();
SpreadsheetApp.flush();
const ws = ss.getSheetByName("importa");
const max_riga = ws.getLastRow();
var dati = ws.getRange(2, 1, max_riga-1, 6).getValues();
dati.forEach(r => {
scriviElenco({
corso: r[0],
ciclo: r[1],
studente: r[2],
status: r[4],
id_matr: r[5]
});
});
}
function scriviElenco(passa) {
if (passa.status === "NO PAGÓ") {
var daSplittare = passa.corso+"|"+passa.studente+"|"+passa.id_matr;
var riga = [];
riga = daSplittare.split("|");
wsd.appendRow(riga);
};
}
它在最后一行返回此错误:
ReferenceError:未定义wsd
我不明白为什么没有定义 wsd 常量,我有更复杂的脚本,我在其中使用相同的定义并且它可以工作。有人可以帮我理解吗?
解决方案
我不明白为什么没有定义 wsd 常量
wsd
不在您的第二个功能范围内,scriviElenco()
; 它仅在范围内importazione()
- 因为Javascriptconst
定义具有块范围。这实际上是有道理的,因为wsd
仅在您执行时设置importazione()
,并且您不能期望它在第二个函数中具有有效值。因此,您可能必须编写如下内容:
function scriviElenco(passa) {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const wsd = ss.getSheetByName("morosi");
// your existing implementation
}
甚至可能是一个单行辅助函数,例如:
function getSheet(sheetName) {
return SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
}
您在这两个函数中的每一个函数的开头都将其分配给一个常量。
推荐阅读
- r - 解析r中的行
- powershell - 你好,团队!寻找一种简单的方法来找出有多少列返回格式表命令行开关
- python - 将图像对象添加为 Plotly 图例条目
- java - 有没有办法利用 Jackson ObjectMapper 从 JSON 中逐个读取对象
- python - python中的子列表列表
- css - Bootstrap 手风琴表不适用于 Laravel 项目
- ios - 我的应用使用相机功能再次被 Apple 拒绝(法律 - 隐私 - 数据收集和存储)
- javascript - 尝试在 vsCode 中为 Mozilla 调试器设置配置时出现端口错误
- magento - 单个产品详细信息显示在主页而不是主页 magento 2
- angular - 基本角度