使用 if 语句设置 javascript 变量——'var = x' 应该在 IF 内部还是外部?
setting a javascript variable with an if statement -- should the 'var = x' be inside or outside the IF?
这可能是一个基本问题,但我很难找到答案。
您想根据变量 A 设置变量 B
你会吗
var B = if(A == "red"){"hot"}else{"cool"}
我认为这行不通。
我想你可以做到
if(A == "red"){var B = "hot"}else{var B = "cool"}
这看起来不是特别优雅。我的意思是,为了清楚起见,我更喜欢以 var b = .... 开头的内容。
虽然您可以为此使用 if 语句,但最好还是使用三元运算符。在您描述的示例中,您将其设置为:
var B = A === "red" ? "hot" : "cool";
一般三元运算符的工作原理如下:
someBooleanExpression ? resultIfSomeBooleanExpressionIsTrue : resultIfSomeBooleanExpressionIsFalse;
还要注意使用 ===
来检查比较,而不是单个 =
,这是赋值。 ==
也可以使用,但最终可能不太准确
三元的完美使用
var B = (A ==="red") ? "hot":"cool";
三元表达式总是 return 如果为真则第一个值,否则为第二个值。非常适合一次性 if/else 语句,但如果您遇到更多嵌套条件,请务必使用传统的 if/else 块以提高可读性。
首先初始化变量,然后使用 if 语句进行比较,并在必要时分配新值
var a = "red";
var b;
if(a=="red"){
b="hot";
}
else{
b="cold";
}
第一个选项
var A = "blue";
var B = (A == "red") ? "hot" : "cool";
第二个选项
var A = "blue";
var B = ""; // Or simply: var B;
if (A == "red") B = "hot"; else B = "cool";
在您的核心中,您声明了一个初始化 a 到 "red"
这是真实的,因此永远不会使用 else 子句。在 JavaScript 中,它是一个 if-statement 而不是 if-expression ,就像 F# 中那样。这意味着你没有初始化 B.
您可能正在寻找的是
var B = A ==="red" ? "hot" : "cool"
也就是说使用条件运算符(*)将B初始化为"hot"
如果A是等于"red"
的字符串否则为"cool"
(*) 运算符有时不准确地称为 ternary operator or more mistakenly the tertiary。只要没有添加另一个三元运算符,将它称为三元运算符并没有那么糟糕,在这一点上它会模棱两可
这可能是一个基本问题,但我很难找到答案。
您想根据变量 A 设置变量 B
你会吗
var B = if(A == "red"){"hot"}else{"cool"}
我认为这行不通。
我想你可以做到
if(A == "red"){var B = "hot"}else{var B = "cool"}
这看起来不是特别优雅。我的意思是,为了清楚起见,我更喜欢以 var b = .... 开头的内容。
虽然您可以为此使用 if 语句,但最好还是使用三元运算符。在您描述的示例中,您将其设置为:
var B = A === "red" ? "hot" : "cool";
一般三元运算符的工作原理如下:
someBooleanExpression ? resultIfSomeBooleanExpressionIsTrue : resultIfSomeBooleanExpressionIsFalse;
还要注意使用 ===
来检查比较,而不是单个 =
,这是赋值。 ==
也可以使用,但最终可能不太准确
三元的完美使用
var B = (A ==="red") ? "hot":"cool";
三元表达式总是 return 如果为真则第一个值,否则为第二个值。非常适合一次性 if/else 语句,但如果您遇到更多嵌套条件,请务必使用传统的 if/else 块以提高可读性。
首先初始化变量,然后使用 if 语句进行比较,并在必要时分配新值
var a = "red";
var b;
if(a=="red"){
b="hot";
}
else{
b="cold";
}
第一个选项
var A = "blue";
var B = (A == "red") ? "hot" : "cool";
第二个选项
var A = "blue";
var B = ""; // Or simply: var B;
if (A == "red") B = "hot"; else B = "cool";
在您的核心中,您声明了一个初始化 a 到 "red"
这是真实的,因此永远不会使用 else 子句。在 JavaScript 中,它是一个 if-statement 而不是 if-expression ,就像 F# 中那样。这意味着你没有初始化 B.
您可能正在寻找的是
var B = A ==="red" ? "hot" : "cool"
也就是说使用条件运算符(*)将B初始化为"hot"
如果A是等于"red"
的字符串否则为"cool"
(*) 运算符有时不准确地称为 ternary operator or more mistakenly the tertiary。只要没有添加另一个三元运算符,将它称为三元运算符并没有那么糟糕,在这一点上它会模棱两可