如何重新为字符串变量赋值?代码二次赋值未生效求助
解决变量重新赋值后问候语不更新的问题
嘿,别着急,这个问题其实很多刚接触JavaScript的朋友都会碰到,很容易搞明白~
问题原因
你看,当你执行var greeting = "Hello " + name;这行代码的时候,JavaScript会立刻计算出结果:把当时name的取值(也就是"Ana")和"Hello "拼接成固定的字符串"Hello Ana",然后把这个字符串存在greeting变量里。这之后greeting就和name没有关联了——哪怕你后来把name改成"Maria",greeting里存的还是之前计算好的"Hello Ana",自然两次输出都是一样的。
两种解决方案
方案1:修改name后重新计算greeting
既然greeting是一次性计算的,那每次更新name后,我们手动再给greeting赋一次值就行:
var name = "Ana"; var greeting = "Hello " + name; console.log(greeting); // 输出 Hello Ana name = "Maria"; greeting = "Hello " + name; // 重新拼接字符串赋值 console.log(greeting); // 输出 Hello Maria
方案2:用函数动态生成问候语(更推荐)
如果需要多次使用问候语,每次手动赋值有点麻烦,我们可以把问候语的生成逻辑放进函数里,每次调用函数时都会用最新的name值:
var name = "Ana"; function getGreeting() { return "Hello " + name; } console.log(getGreeting()); // 输出 Hello Ana name = "Maria"; console.log(getGreeting()); // 输出 Hello Maria
这样不管你什么时候修改name,只要调用getGreeting(),都会得到最新的问候语~
内容的提问来源于stack exchange,提问作者abs6
相关产品推荐
相关产品推荐

