为什么未定义此变量?

时间:2018-07-22 06:11:56

标签: javascript variables if-statement

我对JavaScript非常陌生,因此如果答案很明显,我会道歉,但是我正在测试脚本,但不幸的是我无法弄清正在发生什么。

let taxableIncome = 1000;
let Income;
let y;

if(taxableIncome == 18201 || taxableIncome >18201 && taxableIncome 
<37001); {
 y = taxableIncome - 18200
Income = y - 0.19 * y + 18200
}

console.log(Income);

控制台将数字记录为4268,在该数字处应予以定义,因为taxableIncome仅为1000,因此不满足if要求,因此不应运行内部代码。

任何帮助将不胜感激:)

3 个答案:

答案 0 :(得分:0)

您不应该在;之后加上if。通过指定;,您基本上是在终止语句并使代码块({...})与条件无关:

let taxableIncome = 1000;
let Income;
let y;
if(taxableIncome == 18201 || (taxableIncome >18201 && taxableIncome 
<37001)) {
  y = taxableIncome - 18200
  Income = y - 0.19 * y + 18200
}

console.log(Income);

答案 1 :(得分:0)

如果满足以下条件,请删除分号: if(taxableIncome == 18201 || taxableIncome >18201 && taxableIncome <37001) { ... }

分号“结束” if,而花括号只是无论if条件如何都将运行的另一个代码块。

答案 2 :(得分:0)

这应该给您预期的结果。您需要在if语句之后删除mode

;