JSlint 警告“将变量声明移动到函数或脚本的顶部。

JSlint warning "Move variable declaration to top of function or script."

提问人:wingck 提问时间:1/18/2023 最后编辑:epascarellowingck 更新时间:1/18/2023 访问量:40

问:

我不知道为什么会出现“将变量声明移动到函数或脚本顶部”的警告。 虽然我将变量“myName”移动到其他地方,但下面的变量将是具有相同警告的新变量。我在JSlint的“选项”部分输入了“窗口,文档”。

window.onload = function() {
  "use strict";
  var myLogin = document.forms.submitForm;
  myLogin.onsubmit = processForm;
  var myName = document.getElementById("result__username");
  var myPassword = document.getElementById("result__password");
  var myMessage = document.getElementById("output");
  myMessage.classList.add("displaynone");

  function processForm() {
    var in_username = myLogin.username;
    var in_password = myLogin.password;


    if (in_username.value === "") {
      in_username.classList.add("changered");
      in_username.focus();
      return false;
    }
    in_username.classList.add("changewhite");
    if (in_password.value === "") {
      in_password.classList.add("changered");
      in_password.focus();
      return false;
    }
    in_password.classList.add("changewhite");
    myName.innerHTML = in_username.value;
    myPassword.innerHTML = in_password.value;
    myMessage.classList.add("displayblock");
    return false;
  }
};
JavaScript JSLint

评论

1赞 epascarello 1/18/2023
可能在其他 var 之前抱怨你。myLogin.onsubmit = processForm;
0赞 wingck 1/18/2023
我把它放在下面的变量之后,但会有更多的错误。
0赞 epascarello 1/18/2023
你把它移到那一行......myMessage.classList.add("displaynone");
0赞 wingck 1/18/2023
是的,但这样做后还会有 28 个错误,预计第 5 列为“var”,而不是第 1 列。应在第 5 列(而不是第 1 列)显示“myMessage”。应在第 5 列(而不是第 1 列)显示为“myLogin”。预期的“功能”在第 5 列,而不是第 1 列。应在第 9 列而不是第 1 列显示“var”。还有很多...
0赞 epascarello 1/18/2023
这意味着你的缩进都是错误的。

答:

0赞 epascarello 1/18/2023 #1

如果你要使用linter,你需要遵循你所应用的任何规则。在接触变量之前,您需要移动变量。您需要向右缩进。使用插件设置 IDE,这些插件将为您格式化代码。

window.onload = function () {
    "use strict";

    var myLogin = document.forms.submitForm;
    var myName = document.getElementById("result__username");
    var myPassword = document.getElementById("result__password");
    var myMessage = document.getElementById("output");

    myMessage.classList.add("displaynone");
    myLogin.onsubmit = processForm;

    function processForm() {
        var in_username = myLogin.username;
        var in_password = myLogin.password;


        if (in_username.value === "") {
            in_username.classList.add("changered");
            in_username.focus();
            return false;
        }

        in_username.classList.add("changewhite");

        if (in_password.value === "") {
            in_password.classList.add("changered");
            in_password.focus();
            return false;
        }

        in_password.classList.add("changewhite");

        myName.innerHTML = in_username.value;
        myPassword.innerHTML = in_password.value;

        myMessage.classList.add("displayblock");
        return false;
    }
};