2

変数「ran​​domWord」を console.log に出力しようとしていますが、クロムはそれが定義されていないと言っています。それは私に定義されているようです。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 がコンソール ログ機能を実行しても変更されないことを考慮してください。したがって、null になります。つまり、ログに記録する前に関数を呼び出す必要があります。

于 2013-03-29T00:03:08.933 に答える