日期:2014-05-16  浏览次数:20472 次

大侠们,求分析
<html>
<head>
<script type="text/javascript">
var score = 0; 
var questions = [
 ['How many moons does Earth have?', 1],
 ['How many moons does Saturn have?',31],
 ['How many moons does Venus have?', 0]
];


for (var i=0; i<questions.length; i++) {
askQuestion(questions[i]);
}


function askQuestion(question) {
  var answer = prompt(question[0],'');
if (answer == question[1]) {

alert('Correct!');
score++;
} else {
alert('Sorry. The correct answer is ' + question[1]);
}
}  
</script>
</head>
<body>

</body>
</html>
首先小弟理解红色部分为数组(应该是这么理解吧?),蓝色部分将其分别提取出来,可是绿色部分我就不懂了,下面是我的分析:
一共3次提取
第1次提取
questions[0]也就是How many moons does Earth have?', 1
function askQuestion(question)也就是等同于function askQuestion(How many moons does Earth have?', 1)
 {  var answer = prompt(question[0],'');这个是否等同于var answer = prompt(How many moons does Earth have?', 1,'') 好吧我凌乱了,怎么有2个","呢?answer应该是取我输入的值吧,那1岂不是多余的?
if (answer == question[1])这个question[1]是应该想测试answer是否等于1,可是 question[1]应该是取How many moons does Saturn have?,31 这里面的31才对啊,因为question[1]代表取question中的第二个数组才对啊,对此我都不知道他怎么却是能对上1,
同时我和我的小伙伴都惊呆了,已经彻底崩溃分析不出第二次和第三次提取了,恳请大神能来解释一下。本人自学javascript,因此也非常辛苦,总是边练边学习,如有人肯指导,请加Q394758764,万分感谢
JavaScript 测试 函数 数组

------解决方案--------------------