所有变量都具有全局作用域,但函数仍无法访问它们

如何解决所有变量都具有全局作用域,但函数仍无法访问它们

我已经在代码中将所有变量设为全局变量,但是我的函数仍然无法访问它们,并且我相信这也会导致我的代码中的函数像getValueOfEasy()函数一样未定义(还有其他原因导致我的函数在定义时显示为“未定义”?

感谢您的帮助,我的主要问题是我无法弄清楚为什么函数无法读取变量。

我的代码的链接在这里:http://jsfiddle.net/6s8y4p9k/6/

代码:

<html>
  



  <script>

function getValueOfEasy(){    
var easy = document.getElementById("easy").value;
}
function getValueOfMedium(){
var medium = document.getElementById("medium").value;
}
function getValueOfHard(){
var hard = document.getElementById("hard").value;
}


   

<!--gives number to sentence  -->
    var FirstE2;
    var FirstM2;
    var FirstH2;
    
    var SecondE2;
    var SecondM2;
    var SecondH2;
    
    var ThirdE2;
    var ThirdM2;
    var ThirdH2;
    
    
<!-- prints __ var sentce to schedule -->
   
    var FirstE;
    var FirstM;
    var FirstH;
  
    var SecondE;
    var SecondM;
    var SecondH;
    
    var ThirdE;
    var ThirdM;
    var ThirdH;
    
  


    
    function timeE() {
    
    if (easy < 4){
            FirstE = "do your # easy assignemnts first";
        SecondE2 = 3;
    }else if (easy === 3) {
        SecondE = "do your # easy assignments second";
        SecondE2 = 3;
      } else if (easy <= 2) {
        ThirdE = "Do your # easy assignemnts last ";
        ThirdE2 = 3;
      }

    }



    function timeM() {
      if (medium >= 3) {
        FirstM = "do your # medium assignments first";
        FirstM2 = 2;
      } else if (medium === 2) {
        SecondM = "do your # medium assignments second"
        SecondM2 = 2;
      } else if (medium === 1) {
        ThirdM = "Do your # medium assignments last"
        ThirdM2 = 2;
      }
    }
    
    
    
    function timeH() {
      if (hard >= 1) {
        FirstH = "do your # hard assignments first";
        FirstH2 = 1;
      } else {
        return;
   
    }
        
      
      var excitedE;
      var excitedM;
      var excitedH;


    function yesE() {
      excitedE = 3;
    }

    function mehE() {
      excitedE = 2;
    }

    function noE() {
      excitedE = 1;
    }

    function yesM {

      excitedM = 3;
    }

    function mehM() {
      excitedM = 2;
    }

    function noM() {
      excitedM = 1;
    }

    function yesH {
      excitedH = 3;
    }

    function mehH() {
      excitedH = 2;
    }

    function noH() {
      excitedH = 1;
    }
    
    
    
    
    
    
    


    function ExcitedE() {


      if (excitedE = 3 && FirstE2 = 3) {
        FirstE = "do your # easy assignments last";

      } else if (excitedE = 3 && FirstE2 = 3 && easy >= 4) {
        ThirdE = "do your # easy  assignments third";
      }
      //easy: 1st of list & yes excited
      
      
      else if (excitedE = 2 && FirstE2 = 3) {
        
        SecondE = "do your # easy assignments Second";

      } 
      //easy: 1st of list & maybe excited
      
      
      else if (excitedE = 1 && FirstE2 = 3) {
        FirstE = "do your # easy assignments first";

      } 
      //easy: 1st of list & not excited


     else if (excitedE = 3 && SecondE2 = 3) {
        SecondE = "do your # easy assignments second";
      }
      //easy: 2nd of list & yes excited
      
      
      else if (excitedE = 2 && SecondE2 = 3) {
        SecondE = "do your # easy assignments second";
      }

      //easy: 2nd of list and maybe excited
      
      
      else if (excitedE = 1 && SecondE2 = 3) {
        FirstE = "do your # easy assignments first";
      }
      //easy: 2nd and no


      if (excitedE = 3 && ThirdE2 = 3) {
        ThirdE = "do your # easy assignments third";
      }

      //easy: 3rd of list & yes excited
      
      
      else if (excitedE = 3 && ThirdE2 = 3) {
        SecondE = "do your # easy assignments second";
      }

      //easy: 3nd of list and maybe excited
      
      
      else if (excitedE = 2 && ThirdE2 = 3) {
        FirstE = "do your # easy assignments first";
      }
      //easy: 3rd and no
      else if (excitedE = 1 && ThirdE2 = 3) {
        FirstE = "do your # easy assignments first";
      }


    }





    
    

    function ExcitedM() {

      if (excitedM = 3 && FirstM2 = 3 && medium >= 2) {
        ThirdM = "do your # easy  assignments third";
      } else if (excitedM = 3 && FirstE2 = 3) {
        FirstM = "do your # easy assignments last";
      }
      //medium: 1st of list & yes excited


      if (excitedM = 3 && SecondM2 = 3) {
        SecondM = "do your # easy assignments second";
      }
      //medium: 2nd of list & yes excited
      else if (excitedM = 2 && SecondM2 = 3) {
        SecondM = "do your # easy assignments second";
      }

      //medium: 2nd of list and maybe excited
      else if (excitedM = 1 && SecondM2 = 3) {
        FirstM = "do your # easy assignments first";
      }
      //medium: 2nd and no

      if (excitedM = 3 && ThirdM2 = 3) {
        ThirdM = "do your # easy assignments third";
      }

      //medium: 3rd of list & yes excited
      else if (excitedM = 2 && ThirdM2 = 3) {
        SecondM = "do your # easy assignments second";
      }

      //medium: 3nd of list and maybe excited
      else if (excitedM = 3 && ThirdM2 = 3) {
        FirstM = "do your # easy assignments first";
      }
      //medium: 3rd and no

    } else {

      return;
    }


  


  


    function ExcitedH() {

      if (excitedE = 3 && FirstH2 = 3 && hard === 1) {
        ThirdH = "do your # hard  assignments last";
      } else if (excitedE = 3 && FirstH2 = 3) {
        FirstH = "do your # hard assignments first";
      }
      //hard: 1st of list & yes excited


      if (excitedE = 3 && SecondH2 = 3) {
        SecondH = "do your # hard assignments second";
      }
      //hard: 2nd of list & yes excited
      else if (excitedE = 2 && SecondH2 = 3) {
        SecondH = "do your # hard assignments second";
      }

      //hard: 2nd of list and maybe excited
      else if (excitedE = 1 && SecondH2 = 3) {
        FirstH = "do your # hard assignments first";
      }
      //hard: 2nd and no

      if (excitedE = 3 && ThirdH2 = 3) {
        ThirdH = "do your # hard assignments third";
      }

      //hard: 3rd of list & yes excited
      else if (excitedE = 2 && ThirdH2 = 3) {
        SecondH = "do your # hard assignments second";
      }

      //hard: 3nd of list and maybe excited
      else if (excitedE = 3 && ThirdH2 = 3) {
        FirstH = "do your # hard assignments first";
      }
      //hard: 3rd and no

    } else {

      return;
    }




    function showSchedule() {
      document.getElementById("HD1").style.display = "none";
      document.getElementById("homeworkSchedule").style.display = "block";
    }

    function showEnterBtn() {
      document.getElementById("save").style.display = "none";
      document.getElementById("enter").style.display = "block";
    }


  function showHard() {
      document.getElementById("MD1").style.display = "none";
      document.getElementById("HD1").style.display = "block";
    }



    function showMedium() {
      document.getElementById("ED1").style.display = "none";
      document.getElementById("MD1").style.display = "block";
    }


    <
    !--makes schedule-- >
    function makeHomeworkSchedule() {

      document.getElementById("first").innerHTML = FirstE + " " + FirstM + " " + FirstH;
      document.getElementById("second").innerHTML = SecondE + " " + SecondM + " " + SecondH;
      document.getElementById("third").innerHTML = ThirdE + " " + ThirdM + " "
      ThirdH;
    }

  </script>



  <body>


    <div id=ED1>


      <p>
        <center>
          Question 1,enter number?
        </center>
      </p>

      <center><input min="0" id="easy" type="number"/></center>

      <center>
        <p>This an other question,click one of the buttons?</p>

        <button class="button button3" onclick="yesE()">Yes</button>

        <button class="button button3" onclick="mehE()">Meh</button>

        <button class="button button3" onclick="noE()">No</button>
      </center>

      <h1> </h1>




      <center><button class="button button3" onclick="getValueOfEasy(); timeE(); ExcitedE(); showMedium(); " id="easyEnter">Enter</button></center>
    </div>


    




    <div id="MD1" style="display:none">



      <h1>
        Question 2?
      </h1>

      <input min="0" id="medium" type="text">

      <p>this is another question?</p>
      <button class="button button3" onclick="yesM()">Yes</button>
      <button class="button button3" onclick="mehM()">Meh</button>
      <button class="button button3" onclick="noM()">No</button>

      <h1> </h1>



      <button class="button button3" onclick="getValueOfMedium(); showHard(); timeM(); ExcitedM();" id="mediumEnter">Enter</button>
    </div>





    <div id="HD1" style="display:none">



      <p>
       Question 3?
      </p>



      <input min="0" id="hard" type="text">

      <p>WOah another question!?</p>
      <button class="button button3" onclick="yesH()">Yes</button>
      <button class="button button3" onclick="mehH()">Meh</button>
      <button class="button button3" onclick="noH()">No</button>

      <h1> </h1>




      <button id="save" class="button button3" onclick="getValueOfHard(); timeH(); ExcitedH(); makeHomeworkSchedule();">Save</button>

      
    </div>




    <div id="homeworkSchedule" style="display:none">
      <p>... paragprah ...</p>

      <h1>1st:</h1>
      <h5 id="first"></h5>
      <h1>2nd:</h1>
      <h5 id="second"></h5>
      <h1>3rd:</h1>
      <h5 id="third"></h5>

    </div>


  </body>

</html>

解决方法

我认为第一件事是您在用<!-- comment here -->注释JavaScript代码,在JavaScript中用/* comment here*/// comment here注释。

您还要检查带有等号=的if语句,比较时尝试使用=====

您的代码中有很多语法错误,您应该尝试使用带有语法检查器的代码编辑器。在某些情况下,您忘记使用方括号或括号。

您的函数不是全局函数,因为它们是在本地创建的(也称为另一个函数内部),您可以在函数外部创建函数,然后像下面这样在函数内部调用这些函数:

    var excitedE;

    function yesE() {
      excitedE == 3;
    }

    function timeH() {
      yesE();
}

在ES6 +中,我们实际上并没有使用var创建变量,应该将let用于将要更改的变量,而将const用于永不更改的变量。

无论如何,我修复了以下代码段中的所有内容。

<html>
  <script>
    function getValueOfEasy() {
      let easy = document.getElementById("easy").value;
    }
    function getValueOfMedium() {
      let medium = document.getElementById("medium").value;
    }
    function getValueOfHard() {
      let hard = document.getElementById("hard").value;
    }

    /*  gives number to sentence */
    let FirstE2;
    let FirstM2;
    let FirstH2;

    let SecondE2;
    let SecondM2;
    let SecondH2;

    let ThirdE2;
    let ThirdM2;
    let ThirdH2;

    /* prints __ let sentence to schedule */

    let FirstE;
    let FirstM;
    let FirstH;

    let SecondE;
    let SecondM;
    let SecondH;

    let ThirdE;
    let ThirdM;
    let ThirdH;

    function timeE() {
      if (easy < 4) {
        FirstE = "do your # easy assignments first";
        SecondE2 = 3;
      } else if (easy === 3) {
        SecondE = "do your # easy assignments second";
        SecondE2 = 3;
      } else if (easy <= 2) {
        ThirdE = "Do your # easy assignments last ";
        ThirdE2 = 3;
      }
    }

    function timeM() {
      if (medium >= 3) {
        FirstM = "do your # medium assignments first";
        FirstM2 = 2;
      } else if (medium === 2) {
        SecondM = "do your # medium assignments second";
        SecondM2 = 2;
      } else if (medium === 1) {
        ThirdM = "Do your # medium assignments last";
        ThirdM2 = 2;
      }
    }

    /* Making this variables and functions global */
    let excitedE;
    let excitedM;
    let excitedH;

    function yesE() {
      excitedE == 3;
    }

    function mehE() {
      excitedE == 2;
    }

    function noE() {
      excitedE == 1;
    }

    function yesM() {
      excitedM == 3;
    }

    function mehM() {
      excitedM == 2;
    }

    function noM() {
      excitedM == 1;
    }

    function yesH() {
      excitedH == 3;
    }

    function mehH() {
      excitedH == 2;
    }

    function noH() {
      excitedH == 1;
    }

    function timeH() {
      if (hard >= 1) {
        FirstH = "do your # hard assignments first";
        FirstH2 = 1;
      } else {
        return;
      }
      /* Calling the functions here */
      yesE();
      mehE();
      noE();
      yesM();
      mehM();
      noM();
      yesH();
      mehH();
      noH();
    }

    function ExcitedE() {
      if (excitedE == 3 && FirstE2 == 3) {
        FirstE = "do your # easy assignments last";
      } else if (excitedE == 3 && FirstE2 == 3 && easy >= 4) {
        ThirdE = "do your # easy  assignments third";
      }
      //easy: 1st of list & yes excited
      else if (excitedE == 2 && FirstE2 == 3) {
        SecondE = "do your # easy assignments Second";
      }
      //easy: 1st of list & maybe excited
      else if (excitedE == 1 && FirstE2 == 3) {
        FirstE = "do your # easy assignments first";
      }
      //easy: 1st of list & not excited
      else if (excitedE == 3 && SecondE2 == 3) {
        SecondE = "do your # easy assignments second";
      }
      //easy: 2nd of list & yes excited
      else if (excitedE == 2 && SecondE2 == 3) {
        SecondE == "do your # easy assignments second";
      }

      //easy: 2nd of list and maybe excited
      else if (excitedE == 1 && SecondE2 == 3) {
        FirstE == "do your # easy assignments first";
      }
      //easy: 2nd and no

      if (excitedE == 3 && ThirdE2 == 3) {
        ThirdE == "do your # easy assignments third";
      }

      //easy: 3rd of list & yes excited
      else if (excitedE == 3 && ThirdE2 == 3) {
        SecondE == "do your # easy assignments second";
      }

      //easy: 3nd of list and maybe excited
      else if (excitedE == 2 && ThirdE2 == 3) {
        FirstE == "do your # easy assignments first";
      }
      //easy: 3rd and no
      else if (excitedE == 1 && ThirdE2 == 3) {
        FirstE == "do your # easy assignments first";
      }
    }

    function ExcitedM() {
      if (excitedM == 3 && FirstM2 == 3 && medium >= 2) {
        ThirdM == "do your # easy  assignments third";
      } else if (excitedM == 3 && FirstE2 == 3) {
        FirstM == "do your # easy assignments last";
      }
      //medium: 1st of list & yes excited

      if (excitedM == 3 && SecondM2 == 3) {
        SecondM == "do your # easy assignments second";
      }
      //medium: 2nd of list & yes excited
      else if (excitedM == 2 && SecondM2 == 3) {
        SecondM == "do your # easy assignments second";
      }

      //medium: 2nd of list and maybe excited
      else if (excitedM == 1 && SecondM2 == 3) {
        FirstM == "do your # easy assignments first";
      }
      //medium: 2nd and no

      if (excitedM == 3 && ThirdM2 == 3) {
        ThirdM == "do your # easy assignments third";
      }

      //medium: 3rd of list & yes excited
      else if (excitedM == 2 && ThirdM2 == 3) {
        SecondM == "do your # easy assignments second";
      }

      //medium: 3nd of list and maybe excited
      else if (excitedM == 3 && ThirdM2 == 3) {
        FirstM == "do your # easy assignments first";
      }
      //medium: 3rd and no
      else {
        return;
      }
    }

    function ExcitedH() {
      if (excitedE == 3 && FirstH2 == 3 && hard === 1) {
        ThirdH == "do your # hard  assignments last";
      } else if (excitedE == 3 && FirstH2 == 3) {
        FirstH == "do your # hard assignments first";
      }
      //hard: 1st of list & yes excited

      if (excitedE == 3 && SecondH2 == 3) {
        SecondH == "do your # hard assignments second";
      }
      //hard: 2nd of list & yes excited
      else if (excitedE == 2 && SecondH2 == 3) {
        SecondH == "do your # hard assignments second";
      }

      //hard: 2nd of list and maybe excited
      else if (excitedE == 1 && SecondH2 == 3) {
        FirstH == "do your # hard assignments first";
      }
      //hard: 2nd and no

      if (excitedE == 3 && ThirdH2 == 3) {
        ThirdH == "do your # hard assignments third";
      }

      //hard: 3rd of list & yes excited
      else if (excitedE == 2 && ThirdH2 == 3) {
        SecondH == "do your # hard assignments second";
      }

      //hard: 3nd of list and maybe excited
      else if (excitedE == 3 && ThirdH2 == 3) {
        FirstH == "do your # hard assignments first";
      } else {
        return;
      }

      //hard: 3rd and no
    }

    function showSchedule() {
      document.getElementById("HD1").style.display = "none";
      document.getElementById("homeworkSchedule").style.display = "block";
    }

    function showEnterBtn() {
      document.getElementById("save").style.display = "none";
      document.getElementById("enter").style.display = "block";
    }

    function showHard() {
      document.getElementById("MD1").style.display = "none";
      document.getElementById("HD1").style.display = "block";
    }

    function showMedium() {
      document.getElementById("ED1").style.display = "none";
      document.getElementById("MD1").style.display = "block";
    }

    /* makes schedule */
    function makeHomeworkSchedule() {
      document.getElementById("first").innerHTML =
        FirstE + " " + FirstM + " " + FirstH;
      document.getElementById("second").innerHTML =
        SecondE + " " + SecondM + " " + SecondH;
      document.getElementById("third").innerHTML = ThirdE + " " + ThirdM + " ";
      ThirdH;
    }
  </script>

  <body>
    <div id="ED1">
      <p>
        <center>
          Question 1,enter number?
        </center>
      </p>

      <center><input min="0" id="easy" type="number" /></center>

      <center>
        <p>This an other question,click one of the buttons?</p>

        <button class="button button3" onclick="yesE()">Yes</button>

        <button class="button button3" onclick="mehE()">Meh</button>

        <button class="button button3" onclick="noE()">No</button>
      </center>

      <h1></h1>

      <center>
        <button
          class="button button3"
          onclick="getValueOfEasy(); timeE(); ExcitedE(); showMedium(); "
          id="easyEnter"
        >
          Enter
        </button>
      </center>
    </div>

    <div id="MD1" style="display: none;">
      <h1>
        Question 2?
      </h1>

      <input min="0" id="medium" type="text" />

      <p>this is another question?</p>
      <button class="button button3" onclick="yesM()">Yes</button>
      <button class="button button3" onclick="mehM()">Meh</button>
      <button class="button button3" onclick="noM()">No</button>

      <h1></h1>

      <button
        class="button button3"
        onclick="getValueOfMedium(); showHard(); timeM(); ExcitedM();"
        id="mediumEnter"
      >
        Enter
      </button>
    </div>

    <div id="HD1" style="display: none;">
      <p>
        Question 3?
      </p>

      <input min="0" id="hard" type="text" />

      <p>WOah another question!?</p>
      <button class="button button3" onclick="yesH()">Yes</button>
      <button class="button button3" onclick="mehH()">Meh</button>
      <button class="button button3" onclick="noH()">No</button>

      <h1></h1>

      <button
        id="save"
        class="button button3"
        onclick="getValueOfHard(); timeH(); ExcitedH(); makeHomeworkSchedule();"
      >
        Save
      </button>
    </div>

    <div id="homeworkSchedule" style="display: none;">
      <p>... paragraphs ...</p>

      <h1>1st:</h1>
      <h5 id="first"></h5>
      <h1>2nd:</h1>
      <h5 id="second"></h5>
      <h1>3rd:</h1>
      <h5 id="third"></h5>
    </div>
  </body>
</html>

,
// declare your variable in global

var firstVariable;


function A(firstVariable){
  // do something
}

// call function
A(firstVariable)

// if u want to check is some variable equals some value use `===` instead of '='

// don't use `<!--- -->` in JS,use `//` or `/* -your comment- */`

,

您有一些语法错误需要首先解决。您在某些函数中缺少括号,正在使用赋值运算符=作为比较器,并且缺少timeE的右括号。您需要先修复错误,然后脚本才能正确运行。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-