使用if语句为变量赋值

时间:2019-11-19 05:27:52

标签: javascript d3.js

我是一个学习者。当我尝试为变量赋值时,如下所示,它不起作用。想知道原因。

这不起作用:

const w =
  if (2 > 1) {
    return 1500;
  } else {
    return 2500;
  }

但这可行:

const w = function() {
  if (2 > 1) {
    return 1500;
  } else {
    return 2500;
  }
}()

有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

在JavaScript中,我们在语句中使用if(这就是为什么它称为 if语句的原因)。但是,const w =之后的内容是一个表达式。因此,您的第一个代码段无效:您无法在JavaScript需要表达式的地方使用if

话虽如此,您应该使用if“模拟” 来表示表达式,即conditional operator

在您的情况下:

const w = 2 > 1 ? 1500 : 2500;
console.log(w)

或者,如果您(出于某种原因)想要保留if语句:

let w;

if (2 > 1) {
  w = 1500
} else {
  w = 2500
};

console.log(w)

答案 1 :(得分:-1)

您不能使用语句来分配变量。对于备用解决方案,请使用条件/三元运算符

语法

const var_name =条件? true_value:false_value

示例

const w = 2 > 1 ? 1500 : 2500