oxx*_*xxi 2 javascript arrays function return-value console.log
试图将变量'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);
Run Code Online (Sandbox Code Playgroud)
变量randomWord超出了范围.您在函数内定义变量,然后在其外部调用它.
您应该从函数中定义变量或在其中调用它:
function strt(){
var randomWord;
...
console.log(randomWord);
return randomWord;
}//end strt()
Run Code Online (Sandbox Code Playgroud)
要么
var randomWord;
function strt(){
...
return randomWord;
}//end strt()
strt(); // Call the function
console.log(randomWord);
Run Code Online (Sandbox Code Playgroud)
对于后者,考虑到randomWordJS执行控制台日志功能时不会改变; 因此,它将为空.换句话说,您必须在记录之前调用该函数.