在console.log中调用函数在firefox控制台中不输出任何内容?

时间:2018-12-06 12:24:21

标签: javascript firefox console

我一般还是编程新手,需要一些帮助! 这是我html文件中script标记下的代码块,试图使一个简单的石头,剪刀剪游戏工作。 我的问题是我的firefox控制台什么都没出现... 显示的唯一错误消息是:参数列表后的SyntaxError:missing

var computerSelection = computerPlay();
var playerSelection = 'Rock';
var rpsList = ['Rock', 'Paper', 'Scissors'];
var rpsLength = rpsList.length;

function randomChoice(rpsLength) {
  return rpsList[Math.floor((Math.random() * rpsLength)];
}

function computerPlay() {
  switch (randomChoice(rpsLength)) {
    case 'Rock':
      return "Rock";
    case 'Paper':
      return "Paper";
    case 'Scissors':
      return "Scissors";
  }
}

function playRound(playerSelection, computerSelection) {
  if (playerSelection == computerSelection) {
    return 'Tie!';
  } else if (computerSelection == 'Paper' && playerSelection) {
    return 'Computer Wins! Paper covers Rock';
  } else if (computerSelection == 'Scissors' && playerSelection) {
    return 'You Win! Rock smashes Scissors!';
  } else {
    return 'Invalid option!';
  }
}

console.log(playRound(playerSelection, computerSelection));

1 个答案:

答案 0 :(得分:0)

  1. 整理代码显示错误是Math.floor((Math.random() * rpsLength)中的多余括号
  2. 在调用函数之前,需要先定义数组,以便在代码中将var computerSelection = computerPlay();移至console.log之前。
  3. 不需要返回与调用相同的开关
  4. 如果playerSelection始终为Rock,则无需&& playerSelection
  5. 无需传递全局变量

var playerSelection = 'Rock';
var rpsList = ['Rock', 'Paper', 'Scissors'];
var rpsLength = rpsList.length;

function randomChoice() {
  return rpsList[Math.floor(Math.random() * rpsLength)];
}

function playRound(playerSelection, computerSelection) {
  if (playerSelection == computerSelection) {
    return 'Tie!';
  } else if (computerSelection == 'Paper' && playerSelection) {
    return 'Computer Wins! Paper covers Rock';
  } else if (computerSelection == 'Scissors' && playerSelection) {
    return 'You Win! Rock smashes Scissors!';
  } else {
    return 'Invalid option!';
  }
}
console.log(playRound(playerSelection,  randomChoice()));