简介Javascript - 函数,语法,逻辑

时间:2017-04-21 18:09:31

标签: javascript function syntax

我正在尝试建造一个摇滚,纸张,剪刀游戏。这是我的代码:

var options = ["r", "p", "s"];
    
document.onkeyup = function() {
    var userGuess = String.fromCharCode(event.keycode).toLowerCase();

    console.log(userGuess);

    var computerGuess = options[Math.floor(Math.random() * options.length)];

    console.log(computerGuess);

    if (userGuess == "r" || userGuess == "p" || userGuess == "s") {
        alert("Chosen Correctly - Good job!");
    } else {
        alert("Please choose r, p, or s");
    }
}

当我按r,p或s时,我的警报没有说“正确选择 - 干得好!”;相反,警报是请选择“r”,“p”或“s”。 HHHmmmm,没有这个工作,我无法开始将用户猜测与计算机猜测进行比较。是否有任何新鲜的眼睛会帮助我?拜托,谢谢你。

6 个答案:

答案 0 :(得分:1)

你错过了keyCode上的资本C.

var userGuess = String.fromCharCode(event.keyCode).toLowerCase();

答案 1 :(得分:1)

event.keycode应为event.keyCode,注意大写字母C.此外,最好只使用event.key,因为它已经是字符串。

你在开发什么浏览器?通过按F12可以访问开发人员工具,您可以在程序运行时设置断点来访问变量。

答案 2 :(得分:1)

正如其他人所说,你错过了首都" C"在keyCode

但它也让我觉得你不能在任何地方定义event。使用全局event对象是一个坏主意,并且(谢天谢地)并非所有浏览器都支持。您可能还想使用event.which而非event.keyCode,这对所有事件都不一致。

事件处理程序的开头应该更像这样:

document.onkeyup = function(event) {
    var userGuess = String.fromCharCode(event.which).toLowerCase();
    ...

但您也可以使用控制台日志记录来查看正在发生的事情,例如:

document.onkeyup = function(event) {
    console.log("event=", event);
    var userGuess = String.fromCharCode(event.which).toLowerCase();

请注意,我没有说console.log("event=" + event);

+会导致事件输出为[object Object];使用逗号(以及任何现代浏览器的开发者控制台,通常可通过 F12 访问),您将能够浏览对象的内容。

答案 3 :(得分:1)

两个变化:

  1. 传递event,以便在本地提供。
  2. keyCode是用intercaps编写的,(不是keycode,因为你有); JavaScript区分大小写。
  3. 良好的调试提示是console.dir()您尝试检查的对象,它将显示正确(和可用)的属性和方法名称。

    (但请注意,event非常庞大,因此您需要进行大量筛选。)

    
    
    var options = ["r", "p", "s"];
        
    document.onkeyup = function(event) {
    
        var userGuess = String.fromCharCode(event.keyCode).toLowerCase();
    
        console.log(userGuess);
    
        var computerGuess = options[Math.floor(Math.random() * options.length)];
    
        console.log(computerGuess);
    
        if (userGuess == "r" || userGuess == "p" || userGuess == "s") {
            alert("Chosen Correctly - Good job!");
        } else {
            alert("Please choose r, p, or s");
        }
    }
    
    
    

答案 4 :(得分:0)

您希望event作为事件处理程序的参数,而event.keyCode而不是event.keycode(w hich将是未定义的):



var options = ["r", "p", "s"];
    
document.onkeyup = function(event) {
    var userGuess = String.fromCharCode(event.keyCode).toLowerCase();

    console.log(userGuess);

    var computerGuess = options[Math.floor(Math.random() * options.length)];

    console.log(computerGuess);

    if (userGuess == "r" || userGuess == "p" || userGuess == "s") {
        alert("Chosen Correctly - Good job!");
    } else {
        alert("Please choose r, p, or s");
    }
}




答案 5 :(得分:0)

只需将event.keycode改为event.keyCode

即可