Console log not printing variable from function

与世无争的帅哥 提交于 2019-12-08 01:22:53

问题


Trying to print the variable 'randomWord' to console.log, but chrome says it is not defined. It looks like it's defined to me. Why won't it print to the 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);

回答1:


The variable randomWord is out of the scope. You define the variable inside a function, and then call it outside of it.

You should either define the variable out of the function or call it inside of it:

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

Or

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

For the latter, consider that randomWord won't have changed when JS executes the console log function; therefore, it will be null. In other words, you must call the function before you log it.



来源:https://stackoverflow.com/questions/15694273/console-log-not-printing-variable-from-function

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!