我只在使用javascript的Hangman游戏上工作。这是一个班级。我是javascript和DOM的noob,所以请善待。在这一点上,我只想在控制台日志中打印出SOMETHING,真的。除了这里展示的少数功能和游戏过程外,我已经花了好几天和几个小时去尝试让某些东西起作用。我的思考过程是,在循环中不会改变的变量,不需要在html中动态更新,不需要成为hang子手游戏的属性。但是,当我运行下面的代码只是为了让console.log工作,我得到的userGuess没有定义。我想我是通过分配keyUp事件的值来定义它的。如果我让用户猜测Hangman游戏的属性,然后用hangmanGame.userGuess更新我的所有代码,我会得到所有这些意外的令牌错误。无法理解在Javascript中使用DOM的范围和变量
有什么想法?
//Variables===============================================================
var hangmanGame = {presidents: [
"WASHINGTON",
"ADAMS",
"JEFFERSON",
"MADISON",
"MONROE",
"JACKSON",
"VANBUREN",
"HARRISON",
"TYLER",
"POLK",
"TAYLOR",
"FILLMORE",
"PIERCE",
"BUCHANAN",
"LINCOLN",
"JOHNSON",
"GRANT",
"HAYES",
"GARFIELD",
"ARTHUR",
"CLEVELAND",
"HARRISON",
"MCKINLEY",
"ROOSEVELT",
"TAFT",
"WILSON",
"HARDING",
"COOLIDGE",
"HOOVER",
"TRUMAN",
"EISENHOWER",
"KENNEDY",
"NIXON",
"FORD",
"CARTER",
"REAGAN",
"BUSH",
"CLINTON",
"OBAMA"
],
wrongAllowed: 7,
goodLetters: 0,
wordArray: [],
badArray: [],
wins: 0,
//functions=========================================================
startGame: function() {
var word = hangmanGame.presidents[Math.floor(Math.random() * hangmanGame.presidents.length)];
},
}
function write() {
console.log("President" + word);
}
//main process===============================
document.onkeyup = function(event) {
var userGuess = String.fromCharCode(event.keyCode).toUpperCase();
}
if (userGuess == 'A'){
write();
}
哇。格式化抱歉。这是我的第一个帖子。我认为我在发布之前缩进了这一切。我不确定它的第一部分是否在代码框外? – JenPem
我不能从你的缩进中得知,但它看起来像你的'hangmanGame'对象没有完全关闭 –
你只定义了userGuess作为局部变量,所以它在这段代码之外是不可见的document.onkeyup = function(事件){}。通过简单地将userGuess添加为全局变量,您将解决问题。希望这可以帮助。 – acac97