【问题标题】:how can i used conditional to re assign and declare new variable我如何使用条件重新分配和声明新变量
【发布时间】:2016-07-13 08:06:53
【问题描述】:

你好,我实际上认为这样的东西可以在 javascript 中工作。我声明了这个变量,我想重新声明并重新分配它,但如果它以前未定义,则代码应该被忽略,但它就像我弄错了。请看看我做了什么。

         var car = 'BMW';
         console.log(car);//returns BMW
         if (car === undefined)
         var car = 'Saab';
         console.log(car)// returns Saab

我认为它应该归还宝马。错了吗? 伙计们,我想做的是让 javascript 忽略 Saab 对 car 变量的第二次赋值,因为我认为条件指定 saab 的值只有在未定义或未定义时才应重新分配给 car 变量定义。但它已定义,但 saab 仍然打印出来,if 语句实际上是错误的,因为就我而言,我没有达到我的预期。

【问题讨论】:

  • 你在哪里/如何测试这个?它记录了两次“BMW”,而不是“Saab”。
  • 1) 不要在同一个变量上多次使用var。 2) var 关键字具有 function 范围,而不是 block 范围。使用 ES6 let/const 作为块作用域。
  • 它没有记录“saab”...正如@str 所问的,“你是如何测试这个的?”,你能在小提琴中显示输出吗?
  • 小提琴?我该如何使用它?
  • 查看此链接jsfiddle.net

标签: javascript variable-assignment


【解决方案1】:

使用这个

         var car = 'BMW';
         console.log(car);//returns BMW
         if (car === undefined){
                var car = 'Saab';

         }
         console.log(car)// returns Saab

您可以将var car = 'Saab';替换为car = 'Saab';,以在全局范围内创建变量car。

【讨论】:

  • 我实际上是想看看我是否可以通过让javascript忽略重新定义的汽车来控制流程。我希望看到像以前一样的宝马,而不是萨博。谢谢
  • 是的,谢谢它实际上与 {} 的附加部分按预期工作。
【解决方案2】:

与大多数语言一样,您不会多次声明变量。但是,您可以根据需要重新分配。

     var car = 'BMW';
     console.log(car);//returns BMW
     if (car === undefined)
     car = 'Saab';
     console.log(car)// returns Saab

【讨论】:

  • 请编辑更多信息。不建议使用纯代码和“试试这个”的答案,因为它们不包含可搜索的内容,也没有解释为什么有人应该“试试这个”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多