Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

JavaScript JavaScript Basics (Retired) Storing and Tracking Information with Variables Introducing Variables

'if' statement only works when 'prompt' is declared as a variable?

I did this as an exercise while revising Javascript Basics.

I tried to generate different alerts depending on responses to prompts.

This code didn't work -

prompt("Do you want to see another prompt?");

if (prompt === "yes") {
  alert("That's the way!");
} else {
  alert("No problem");
}

This code did work -

var message = prompt("Do you want to see another prompt?");

if (message === "yes") {
  alert("That's the way!");
} else {
  alert("No problem");
}

I think it has something to do with the declared variable being able to store the response to a command?

Can someone help clarify why I couldn't evaluate the response to a prompt using

if (prompt === "yes")

3 Answers

Steven Parker
Steven Parker
216,012 Points

Your first example does not store the response.

In the first example, you call the prompt function, which would display the message, but you don't save the returned response anywhere. Then, you compare the function itself to the word "yes" with the type-sensitive equality operator, which will always be false because prompt is a function and "yes" is a string (plus it still it would never match even with "==").

The second example correctly stores the user's input string in a variable and then tests that variable's content.

Aakash Srivastav
seal-mask
.a{fill-rule:evenodd;}techdegree
Aakash Srivastav
Full Stack JavaScript Techdegree Student 11,625 Points

In first example , why the "else" part of the program is getting executed? When i run the first example i got "No problem" as the result. I guess i will get nothing as result because as you said , we are comparing function itself with the word "yes".

Thanks for explaining all the issues so clearly Steven.

Teacher Russell
Teacher Russell
16,873 Points

I learn as much from reading other people's questions as I do from my own study. Thanks!

Ryan Kistner
Ryan Kistner
723 Points

I completely agree Russel, Thanks for posting this Rory.

I also used the the returned response from my prompt in later code.

var userPrompt = prompt("What is your name?").toLowerCase();


if (userPrompt === 'ryan'){
  console.log("Correctly done Ryan");
  document.write("Welcome Ryan!");
} else {
  (userPrompt !== 'ryan');
  console.log("Correctly done " + userPrompt);
  document.write("welcome " + userPrompt);
};