当我查看以下代码时,我认为" 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>
答案 0 :(得分:1)
在javascript中返回结束一个函数。如果IntSelect是NaN,那么您将输入带有返回的代码块。然后,您的函数在CheckCoice()执行之前返回。