Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialJonathan James
6,998 PointsThe Mad Libs Challenge Revisited
On "The mad libs challenge revisited" the author Dave McFarland restates " var questionsLeft" without making an changes to the code multiple times. He does this on line 5, and 8.... which looks like: questionsLeft = ' [' + questions + ' questions left]';
Since he is not making any alterations to the variable, what is the reasoning behind restating the variable multiple times?
var questions = 3;
var questionsLeft = ' [' + questions + ' questions left]';
var adjective = prompt('Please type an adjective' + questionsLeft);
questions -=1;
questionsLeft = ' [' + questions + ' questions left]';
var verb = prompt('Please type a verb' + questionsLeft);
questions -=1;
questionsLeft = ' [' + questions + ' questions left]';
var noun = prompt('Please type a noun' + questionsLeft);
alert('All done. Ready for the message?');
var sentence = "<h2>There once was a " + adjective;
sentence += ' programmer who wanted to use JavaScript to ' + verb;
sentence += ' the ' + noun + '.</h2>';
document.write(sentence);
1 Answer
Andrew Munro
9,846 PointsHi Jonathan!
Good question. The questionsLeft = ' [' + questions + ' questions left]';
line needs to be repeated each time because the questions
variable on the line before has been subtracted by one. Note how the questions
variable is also included inside the questionsLeft
variable. In other words, the questions
variable has changed since it was first defined at the very beginning of the code, on line 1.
By including the entire line again, the questionsLeft
variable is being updated with the new value of questions
(which is being subtracted by 1). If questionsLeft
was not updated every time the questions
variable was subtracted by 1, it would use the value of the questionsLeft
variable shown on line 2 of the code. In this case, questions
would be equal to 3
and never change.
Hope that helps!