操作的JavaScript条件不能按要求运行

时间:2017-07-25 12:42:31

标签: javascript

我想检查一些操作员条件,并根据我将分配一些值。以下是我的情况。

if (checkIfUserRequesterApprover == "VSAT Approver" && IsDraftOrSave == "Save" || IsDraftOrSave == "Draft") {
    VSATSaving.IS_SUBMIT = 0;
    VSATSaving.STATUS_ID = 1;
}

在我的checkIfUserRequesterApproverVSAT Requester

  

这两个条件仍然令人满意并进入内部。怎么可能?

3 个答案:

答案 0 :(得分:4)

看起来像你的if表达式 (checkIfUserRequesterApprover == "VSAT Approver" && (IsDraftOrSave == "Save" || IsDraftOrSave == "Draft"))

答案 1 :(得分:0)

您需要添加括号以对条件中的表达式进行分组。

当你写:

 if (checkIfUserRequesterApprover == "VSAT Approver" && IsDraftOrSave == "Save" || IsDraftOrSave == "Draft")

并且您的checkIfUserRequesterApprover是'VSAT Requester',它返回false。 由于Java开始从左侧开始评估表达式,并且您的第一个表达式为false,然后是&&第二个表达式,所以前两个表达式总是计算为false,后面跟着||和第三个表达式,这将使您的结果依赖于第三个表达式 (false&& false || false)=(false || false)= false
(false&& false || true)=(false || true)= true
(false&& true || false)=(false || false)= false
(false&& true || true)=(false || true)= true

答案 2 :(得分:-2)

使用括号正确组合条件。