【问题标题】:Trying to reassign var but it does not change试图重新分配 var 但它没有改变
【发布时间】:2020-09-02 18:30:02
【问题描述】:

对于编码和 JS 的新手,我很早就知道您可以更改 reassign var 但在下面的情况下,尝试将摩天大楼更改为伦敦是行不通的。

var city = 'New York City';

const logCitySkyline = () => {
var skyscraper = 'Empire State Building';
return 'The stars over the ' + skyscraper + ' in ' + city; 
skyscraper = "London";
};

console.log(logCitySkyline());

【问题讨论】:

  • return之后的代码永远不会执行。
  • 如果它真的有效,你期望会发生什么?当您告诉我们时,我们实际上可能会告诉您如何做到这一点。

标签: javascript var


【解决方案1】:

在您的函数logCitySkylin 中,return 语句从函数中中断,这意味着在执行后不再有代码。无论如何更改该值是没有意义的,因为您永远不会在该函数调用中再次使用该变量。

var city = 'New York City';

const logCitySkyline = () => {
var skyscraper = 'Empire State Building';
return 'The stars over the ' + skyscraper + ' in ' + city; 
};

console.log(logCitySkyline());

【讨论】:

  • 所以您现在创建了一个全局变量skyscraper,它与var skyscraper 内部的var skyscraper 无关logCitySkyline。所以这个答案没有意义。
  • 对。我的错误我以为他正在修改城市变量...
  • 你看到我之前的评论了吗?
  • 请注意,如果您在浏览器中创建没有var 关键字的变量。它将在窗口对象中分配
【解决方案2】:
var city = 'New York City';

const logCitySkyline = (skyscraper) => {
    return 'The stars over the ' + skyscraper + ' in ' + city; 
};
console.log(logCitySkyline('Empire State Building'));
console.log(logCitySkyline('London'));

您的函数没有返回,因为它在 return 语句之后没有运行任何行。

你可以做什么,你可以将摩天大楼作为参数传递给一个函数。

【讨论】:

    【解决方案3】:

    您的变量skyscraper 不会更改,因为您在返回后尝试在函数logCitySkyline 内执行此操作。返回时函数结束,所以函数的最后一行不会执行。

    你可以试试这个

    var city = 'New York City';
    
    const logCitySkyline = () => {
    var skyscraper = 'Empire State Building';
    skyscraper = "London";
    return 'The stars over the ' + skyscraper + ' in ' + city; 
    };
    
    console.log(logCitySkyline());
    

    或/和这个

    var city = 'New York City';
    
    const logCitySkyline = () => {
    var skyscraper = 'Empire State Building';
    return 'The stars over the ' + skyscraper + ' in ' + city; 
    };
    
    skyscraper = "London";
    
    console.log(logCitySkyline());
    

    【讨论】:

    • 我看到如果它在返回语句之后它不会执行,谢谢。
    猜你喜欢
    • 1970-01-01
    • 2021-06-17
    • 1970-01-01
    • 2018-01-13
    • 2022-08-10
    • 1970-01-01
    • 2020-11-04
    • 2016-02-14
    • 2022-06-14
    相关资源
    最近更新 更多