Javascript / Node.JS - 是否可以使用具有多个定义的var?

时间:2017-11-06 02:11:03

标签: javascript node.js variables var

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

例如:

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!")
}

5 个答案:

答案 0 :(得分:2)

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

  

var myVar =" asd" || " FGH"

这行代码会评估"asd"以确定它是否真的是' truthy',它是。因此,myVar设置为" asd"。如果它是'falsy',例如,如果你做了var myVar = null || "fgh",那么它会将myVar设置为第二部分,从而使它等于" fgh"。

答案 1 :(得分:2)

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

是一回事
var x = 1 + 2;

||如何工作是逻辑OR:它返回第一个"truthy" value(例如非空字符串,所有值都是真实的,除非它们是false,{{ 1}},0""nullundefined)。如果要将默认值设置为“缺失”值,例如:

,这非常有用
NaN

在您的情况下,它只是var size = specifiedSize || 100;

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

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 :(得分:1)

您可以使用函数表达式

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

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