2

试图将变量“randomWord”打印到 console.log,但 chrome 说它没有定义。它看起来像是对我定义的。为什么它不会打印到 console.log?

function strt(){

//get random word from words[] array
var randomWord = words[Math.floor(Math.random()* words.length)];

var wordLength = randomWord.length;


//create a blank boxes or div elements for holding each letter of 
// selected random word
for(i = 0 ; i< wordLength; i++){

var divTag = document.createElement("div");
divTag.id = "div" + i;
divTag.className = 'wordy';
//divTag.innerHTML = randomWord[i];
hangManDiv.appendChild(divTag);

};// end for loop

//disable start button
document.getElementsByName("startB")[0].disabled = true;

return randomWord;

}//end strt()

console.log(randomWord);
4

1 回答 1

5

变量randomWord超出范围。您在函数内部定义变量,然后在函数外部调用它。

您应该在函数之外定义变量或在函数内部调用它:

function strt(){
   var randomWord;
   ...
   console.log(randomWord);
   return randomWord;
}//end strt()

或者

var randomWord;
function strt(){
   ...
   return randomWord;
}//end strt()
strt(); // Call the function
console.log(randomWord);

对于后者,考虑到randomWordJS 执行控制台日志功能时不会发生变化;因此,它将为空。换句话说,您必须在记录之前调用该函数。

于 2013-03-29T00:03:08.933 回答