Javascript 为什么控制台日志在返回语句后不起作用?

Javascript 为什么控制台日志在返回语句后不起作用?,javascript,html,Javascript,Html,我正在测试我的代码,我不知道为什么它不工作 我用HTML为每个选项创建了按钮,并用JavaScript为每个选项创建了一个函数。我在HTML中包含onclick来调用相应的函数,并尝试在控制台中记录选择,以便查看它是否工作,但单击userRock按钮时什么也没有发生 我将非常感谢您的帮助。多谢各位 让用户选择; 函数userRock{ userChoice='rock'; 返回用户选择; console.loguserChoice; } 功能用户纸{ userChoice='纸张'; 返回用户

我正在测试我的代码,我不知道为什么它不工作

我用HTML为每个选项创建了按钮,并用JavaScript为每个选项创建了一个函数。我在HTML中包含onclick来调用相应的函数,并尝试在控制台中记录选择,以便查看它是否工作,但单击userRock按钮时什么也没有发生

我将非常感谢您的帮助。多谢各位

让用户选择; 函数userRock{ userChoice='rock'; 返回用户选择; console.loguserChoice; } 功能用户纸{ userChoice='纸张'; 返回用户选择; } 功能用户剪刀{ userChoice=‘剪刀’; 返回用户选择; } 函数用户蜥蜴{ userChoice='lizard'; 返回用户选择; } 函数userSpock{ userChoice='spock'; 返回用户选择; } 石头,布,剪刀,蜥蜴,斯波克 石剪蜥蜴
在console.log之前有return语句,这使得console.log无法访问

更新此

function userRock () {
  userChoice = 'rock';
  return userChoice;
  console.log(userChoice); // unreachable
}

返回语句

注意,在大多数编程语言中,return是一种特殊的函数

函数在到达return语句时结束其执行

在代码中,当您单击触发userRock函数的按钮时,以下代码将自上而下执行

function userRock () {
  userChoice = 'rock';
  return userChoice;
  console.log(userChoice);
}
首先,它将把字符串rock分配给变量userChoice 然后返回选择。 然后什么也不会发生,因为您在函数中返回了一个值,而这就是函数停止的地方

您可以做些什么来修复它:

首先记录变量,然后返回它

工作示例:


控制台后的返回点

让用户选择; 函数userRock{ userChoice='rock'; console.loguserChoice; 返回用户选择; } 功能用户纸{ userChoice='纸张'; console.loguserChoice; 返回用户选择; } 功能用户剪刀{ userChoice=‘剪刀’; console.loguserChoice; 返回用户选择; } 函数用户蜥蜴{ userChoice='lizard'; console.loguserChoice; 返回用户选择; } 函数userSpock{ userChoice='spock'; console.loguserChoice; 返回用户选择; } 石头,布,剪刀,蜥蜴,斯波克 石剪蜥蜴
您的代码是正确的,其中没有语法错误,但是请注意,在return语句之后编写的任何代码都不会被执行。根据函数体中使用return语句的时间,函数的执行将停止。因此,只需将console.log移到return语句上方即可。

您没有在任何地方使用函数的返回值。每个console.log语句之前的return语句意味着每个console.log在代码中都是不可访问的语句。
function userRock () {
  userChoice = 'rock';
  return userChoice;
  console.log(userChoice);
}
function userRock () {
  userChoice = 'rock';
  console.log(userChoice);
  return userChoice;
}