if子句在JavaScript中终止工作流程?

时间:2016-04-27 21:24:27

标签: javascript html

当我查看以下代码时,我认为" CheckChoice(IntSelect)"无论如何都会执行#34; if(isNaN(IntSelect))"将执行与否。

如果我输入NaN并且CheckChoice功能起作用,则警报("提供的值超出范围!");也应该显示为"默认"科。但它并没有像我预期的那样发生。

我不明白当输入是NaN时会发生什么,请有人解释一下。

谢谢。

<!DOCTYPE html>

<html>
<head>
   <title>Using the Default Clause</title>
   <script language="JavaScript">
      function CheckChoice(option)
      {
         // Make a selection.
         switch (option)
         {
            case 1:
               document.getElementById("Result").innerHTML =
                  "You chose Item A.";
               break;
            case 2:
               document.getElementById("Result").innerHTML =
                  "You chose Item B.";
               break;
            case 3:
               document.getElementById("Result").innerHTML =
                  "You chose Item C.";
               break;
            default:
               // Display an error dialog.
               alert("The value supplied is out of range!");
               break;
         }
      }

      function MakeAChoice()
      {
         // Ask the user to provide input.
         var Selection = prompt("Type a menu option.");

         // Convert the string to a number.
         var IntSelect = parseInt(Selection);

         // Verify the user has provided a number.
         if (isNaN(IntSelect))
         {
            // Display an error dialog.
            alert("Please provide numeric input!");

            // Return without doing anything more.
            return;
         }

         // Call the selection function.
         CheckChoice(IntSelect);
      }
   </script>
</head>

<body>
   <h1>Using the Default Clause</h1>
   <p>Menu Options:</p>
   <ol>
    <li>Item A</li>
    <li>Item B</li>
    <li>Item C</li>
   </ol>
   <input type="button"
          value="Choose a Menu Item"
          onclick="MakeAChoice()" />
   <p id="Result"></p>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

在javascript中返回结束一个函数。如果IntSelect是NaN,那么您将输入带有返回的代码块。然后,您的函数在CheckCoice()执行之前返回。