使用if语句设置javascript变量--'var = x'应该在IF内部还是外部?

tez616oj  于 2023-06-04  发布在  Java
关注(0)|答案(6)|浏览(167)

这可能是一个基本的问题,但我很难找到答案。
您希望根据变量A设置变量B
你愿意吗

var B = if(A == "red"){"hot"}else{"cool"}

我觉得这样不行。
我想你可以

if(A == "red"){var B = "hot"}else{var B = "cool"}

这看起来并不特别优雅。我的意思是我更喜欢以var B = ...开头的东西。只是为了弄清楚

bis0qfac

bis0qfac1#

三进制的完美使用

var B = (A ==="red") ? "hot":"cool";

如果为真,三进制表达式将始终返回第一个值,否则返回第二个值。非常适合一次性的if/else语句,但是如果你要使用更多的嵌套条件,为了可读性,一定要使用传统的if/else块。

mrfwxfqh

mrfwxfqh2#

虽然可以使用if语句来实现这一点,但最好使用三元运算符。在您描述的示例中,您将其设置为:

var B = A === "red" ? "hot" : "cool";

三进制运算符一般工作如下:

someBooleanExpression ? resultIfSomeBooleanExpressionIsTrue : resultIfSomeBooleanExpressionIsFalse;

还要注意使用===来检查比较,而不是使用单个=,后者是赋值。也可以使用==,但最终可能不太准确

vmdwslir

vmdwslir3#

首先初始化变量,然后使用if语句进行比较,并在必要时分配新值

var a = "red";
var b;
if(a=="red"){
    b="hot";
}
else{
    b="cold";
}
5kgi1eie

5kgi1eie4#

在你的核心中,你正在声明一个初始化为"red"的变量,这是真的,所以else子句永远不会被使用。在JavaScript中,它是一个if-语句,而不是像F#中那样的if-表达式。这意味着你没有初始化B。
你要找的可能是

var B = A ==="red" ? "hot" : "cool"

也就是说,如果A是等于"red"的字符串,则使用条件运算符()将B初始化为"hot",否则将B初始化为"cool"
)运算符有时被不准确地称为ternary operator or more mistakenly the tertiary。只要没有添加其他三元运算符,称之为三元运算符也没什么不好,因为在这一点上,它是二义性的

kfgdxczn

kfgdxczn5#

第一个选项

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";
ktecyv1j

ktecyv1j6#

切换到CoffeeScript(编译为JavaScript)。然后您可以执行以下操作:

B = if A == "red" then "hot" else "cool"

CoffeeScript中的一切都是表达式!所以你也可以将switch语句的值赋给一个变量:

B = switch A
    when "red" then "hot"
    when "blue" then "cool"
    else "medium"

我知道,我知道,现在没人用咖啡脚本了。但还是很上级。

相关问题