2013-08-16 90 views
0

在udemy上使用JavaScript进行在线课程。尝试编码我学到的东西。我收到一个未定义的错误。 Visual Studio 2012 Pro说代码是找到的,但是当我运行代码时,我得到错误。VS中的JavaScript未定义错误

 <script type="text/javascript"> 
     var numericalGrade = 82; 
     var letterGrade; 
     function myResaults() { 
      document.write("Your score is " + numericalGrade + "%. Your grade will be a " + letterGrade + ".<br />"); 
     } 

     if (numericalGrade >= 90) { 
      letterGrade = "A"; 
      document.write(myResaults() + " Excellent, you passed this course with flying colors..."); 
     } 

     else if (numericalGrade >= 80) { 
      letterGrade = "B"; 
      document.write(myResaults() + " Excellent, you passed this course with a great grade.."); 

     } 
     else if (numericalGrade >= 70) { 
      letterGrade = "C"; 
      document.write(myResaults() + " Congratulations, you passed this course..."); 

     } 
     else if (numericalGrade >= 60) { 
      letterGrade = "D"; 
      document.write(myResaults() + " You revived a grade that will not permit you to pass this course. You can retake this course at a later date."); 

     } 
     else { 
      letterGrade = "F"; 
      document.write(myResaults() + "You failed this course. You can retake this course at a later date."); 

     } 
    </script> 

那么我做错了什么。我对JavaScript编码非常陌生。

+2

什么是确切的错误? – j08691

+2

'myResaults()'返回'undefined',因为它没有'return'语句。当你执行'myResaults()+“”'时,你将'undefined'连接到一个字符串,所以你看到'undefined'。 –

回答

3

你的函数需要返回一个值,但因为它不是你得到的未定义。

变化:

function myResaults() { 
    document.write("Your score is " + numericalGrade + "%. Your grade will be a " + letterGrade + ".<br />"); 
} 

function myResaults() { 
    return "Your score is " + numericalGrade + "%. Your grade will be a " + letterGrade + ".<br />"; 
} 
+0

谢谢,它的工作。我不知道退货是什么。也许在课程视频中,教练将解释什么是回报。再次感谢。 –

+0

返回做的非常多,指定一个值返回给所谓的函数。请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return。正如MDN文档所示,“要返回的表达式,如果省略,则返回undefined。” – j08691