首页 > 解决方案 > 为什么我的变量是空的,而不是在 JS 中未定义?

问题描述

我正在尝试制作一种编程语言。我有一个名为 textToRead 的全局变量,它是文件中的文本。但是,它会导致一个空变量。

<!DOCTYPE html>
<html>
<body>
  <p id="text">This is where your code will appear</p>
  <p id="test">This is where your code will appear</p>
  <p id="output">This is where you will see the output</p>
  <tr>
    <td>Select a File to Load:</td>
    <td><input type="file" id="fileToLoad"></td>
    <td><button onclick="loadFileAsText()">Load Selected File</button>
      <td>
  </tr>
  <button onclick="run()">Interpret .txt as code</button>
  <script>
    let textToRead;
    function loadFileAsText() {
      var fileToLoad = document.getElementById("fileToLoad").files[0];
      var fileReader = new FileReader();
      fileReader.onload = function(fileLoadedEvent) {
        var textFromFileLoaded = fileLoadedEvent.target.result;
        document.getElementById("text").innerHTML = textFromFileLoaded;
      };
      fileReader.readAsText(fileToLoad, "UTF-8");
      document.getElementById("text").innerHTML = fileReader.result;
      textToRead = fileReader.result;
      document.getElementById("test").innerHTML = textToRead;
    }

    function run() {
      if (textToRead.includes("output")) {
        document.getElementById("output").innerHTML = textToRead;
      } else {
        document.getElementById("output").innerHTML = textToRead + "error";
      }
    }
  </script>
</body>

</html>
我没有收到任何错误,并且我的变量 textToRead 不是未定义的,因为它导致的值为空,而不是未定义。您可以查看页面的部分正在工作,但用于解析字符串的变量却没有。

标签: javascriptprogramming-languagesfilereader

解决方案


推荐阅读