Javascript 在Google脚本中,声明变量时的问题,然后在彼此内部使用它们?

Javascript 在Google脚本中,声明变量时的问题,然后在彼此内部使用它们?,javascript,Javascript,我声明了两个变量(link1和link2),并在另一个声明的变量(message)中使用它们。然后我创建了一个if语句,其中我使用了“message”,但我想更改if语句中两个变量的值。最后,我得到了一个错误的输出 var link1, link2; var messageFailed = "undefined"; var message = "Your first link: " + link1 + "Your second link: " + link2 if(true){ link1 =

我声明了两个变量(link1和link2),并在另一个声明的变量(message)中使用它们。然后我创建了一个if语句,其中我使用了“message”,但我想更改if语句中两个变量的值。最后,我得到了一个错误的输出

var link1, link2;
var messageFailed = "undefined";
var message = "Your first link: " + link1 + "Your second link: " + link2

if(true){
link1 = "Hello"
link2 = "World"
MailApp.sendEmail(message);
}
MailApp.sendEmail(messageFailed);

我可以简单地在if语句中重新声明'message'变量,但我计划使用多个if语句,这样代码就会看起来非常混乱,如果需要的话,更改'message'文本会很痛苦。在“message”变量已经声明之后,如何更改“link1”和“link2”变量

当您分配
消息时,您正在计算结果并分配它。之后更改这些变量不会更改分配
消息时计算的字符串。您需要在完成变量更改后创建消息

在“message”变量已经声明之后,如何更改“link1”和“link2”变量

您可以更改
link1
link2
,但它不会影响
消息的值,因为您无法返回时间。字符串连接已经发生

相反,您可以创建一个函数,根据传递的参数生成消息:

function createMessage(link1, link2) {
  return "Your first link: " + link1 + "Your second link: " + link2
}

if(true){
  MailApp.sendEmail(createMessage("Hello", "World"));
}

这就是代码重用的工作原理。您正在将固定的部分移动到函数中,并使这些部分成为该函数的可变参数。

因此,正如我在注释中提到的,您不能这样做,因为它被赋予了一个值。不过,您可以编写一个超级微小的辅助函数来格式化它

var link1=“”,link2=“”;
var消息=()=>{
返回“你的第一个链接:+link1+”你的第二个链接:+link2;
}
如果(真){
link1=“华夫饼干”;
link2=“果汁水果”;
log(message());

}
简单地说,你不能。您已为消息指定了值,它将保留该值。它不像占位符那样更新。你可以在这里写一个helper函数。试着把if true块放在“var message”行之前。另一件可能有用的事情是“undefined”和undefined(不带引号)在JavaScript中有非常不同的含义。