【问题标题】:Javascript/Node.JS - is it possible to have a var with multiple definitions?Javascript/Node.JS - 是否可以有一个具有多个定义的 var?
【发布时间】:2018-04-18 03:12:20
【问题描述】:

是否可以在不使用数组的情况下将变量定义为两个不同的东西?

例如:

var myVar = "asd" || "fgh" // or maybe it's "asd" && "fgh"?
var message = "asdtest"
var otherMessage = "fghtest"
if (message === myVar + "test") {
   console.log("success!")
}
else if (otherMessage === myVar + "test") {
   console.log("success!")
}

【问题讨论】:

  • 不,这就是为什么会有条件和分配。
  • @PHPglue true .

标签: javascript node.js variables var


【解决方案1】:

你可以使用函数表达式

var myVar = bool => bool ? "asd" : "fgh";

console.log(myVar(1)); // `"asd"`
console.log(myVar(0)); // `"fgh"`

【讨论】:

    【解决方案2】:

    这只是一个定义。该变量将被分配给右侧表达式的值。原则上,这和

    是一样的
    var x = 1 + 2;
    

    || 的工作原理是它是逻辑 OR:它返回第一个 "truthy" value(如非空字符串,所有值都是真值,除非它们是 false0""nullundefinedNaN)。如果您想为“缺失”值提供默认值,这很有用,例如:

    var size = specifiedSize || 100;
    

    在你的情况下,它只是asd

    【讨论】:

      【解决方案3】:

      您可以使用对象或数组来存储所有可能的值:

      var myVarObj = {
        p1: "asd"
        p2: "fgh"
      };
      
      var myVarArr = ["asd", "fgh"];
      
      for (var property in myVarObj) {
          if (message === myVarObj[property] + "test") {
              console.log("success!");
          }
      }
      
      for (var value in myVarArr) {
          if (message === value + "test") {
              console.log("success!");
          }
      }
      

      【讨论】:

        【解决方案4】:

        不,一个变量一次只能保存一个东西。如果你想要多个东西,你应该使用一个数组。

        var myVar = "asd" || “呼”

        这行代码将评估"asd" 以查看它是否“真实”,并且确实如此。因此,myVar 设置为“asd”。相反,如果它是“假”的,例如,如果你做了var myVar = null || "fgh",那么它会将 myVar 设置为第二部分,从而使其等于“fgh”。

        【讨论】:

          【解决方案5】:

          一个变量只能保存一个值。但是,您的变量可以引用数组或对象,它们可以包含多个值。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2016-04-17
            • 2019-11-04
            • 2020-12-26
            • 1970-01-01
            • 1970-01-01
            • 2014-06-06
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多