Javascript 在Google脚本中,声明变量时的问题,然后在彼此内部使用它们?
我声明了两个变量(link1和link2),并在另一个声明的变量(message)中使用它们。然后我创建了一个if语句,其中我使用了“message”,但我想更改if语句中两个变量的值。最后,我得到了一个错误的输出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 =
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中有非常不同的含义。