If...Else,当 if 条件不满足时,Else 块不执行

If...Else, Else block isn't executing when the if condition isn't satisfied

我正在努力弄清楚为什么我的 else 块没有执行,尽管 if 块会在满足条件的情况下执行 我对 java-script 比较陌生,但我有编程经验并且我有点困惑为什么它不会。

这是在 $(document).ready 上调用的函数:

function selectSchool()
    {
        alert("Selecting a School!" + sessionStorage.sCData);
        if (!sessionStorage.sCData || sessionStorage === NULL)
        {
            alert("Its Empty!");
        } else {
            alert("Its Not Empty!");
            //$('#schoolDropdown').val(sessionStorage.sCData);
            //sessionStorage = NULL;
            alert('Session Storage: ' + sessionStorage.sCData);
        }
        alert("Function finished");

    };

我很难看到任何错误的语法,但我对 java 脚本并没有太大的经验,我也注释掉了这两行,看看它是否正在发生在导致它不执行的行中添加 alerts() 以查看函数能够到达的位置。

在此先感谢您提供的任何帮助。

我会切换条件并检查 sessionStorage 的真实性以及 sCData 是否也是真实的。

function selectSchool() {
    alert("Selecting a School!" + sessionStorage.sCData);
    if (sessionStorage && sessionStorage.sCData) {
        alert("Its Not Empty!");
        alert('Session Storage: ' + sessionStorage.sCData);
    } else {
        alert("Its Empty!");
    }
    alert("Function finished");
};

首先,JavaScript中没有类似NULL的东西。 JavaScript 区分大小写。

其次,会话存储永远不会 null,因此 sessionStorage == null 条件将始终 return 为假。

最后,工作片段:

function selectSchool() {
  
  alert("Selecting a School!" + sessionStorage.sCData);
  if (!sessionStorage.sCData) {
    alert("Its Empty!");
  } else {
    alert("Its Not Empty!");
    //$('#schoolDropdown').val(sessionStorage.sCData);
    //sessionStorage = NULL;
    alert('Session Storage: ' + sessionStorage.sCData);
  }
  alert("Function finished");
  
};

NULL != null 所以用 null 替换 NULL。最好使用非运算符,即 !。它检查字符串是否为 empty, null or undefined。也可以使用 like

if (!sessionStorage.sCData || sessionStorage === null)

if (!sessionStorage.sCData || !sessionStorage)

示例:

(function selectSchool()
    {
      var some="";
        if (!some)
        {
            alert("Its Empty!");
        } else {
            alert("Its Not Empty!");
           

        }
        alert("Function finished");

    })()