Jump to content

I am needing help with this while loop


Recommended Posts

    function getPassword(){      var correct = "HTML5";      var guess = "";      while (guess != correct){        guess = prompt("Password?");      } // end while      alert("You may proceed");    } 

Hey guys, I am a newbie, here, so it would be much appreciated if you guys could clarify this issue for me. As you can see the above javascript function (asking the user to enter the correct password after they click on the button or the loop will continue forever), my question is that, why do we need to set the "guess" variable's value to empty in this case, why don't we just leave it as undefined(var guess;), I've seen other people's codes like that as well, they always set the initialization variable's value to empty. The second question is, why do we have "guess = prompt('Password?')", is it okay if I just write "prompt = ('Password?')". Please help me guys, any suggestions are greatly appreciated. God bless you.

Link to post
Share on other sites

guess is probably initialized to a string so that it doesn't have to be casted to a string in the first comparison. It's nothing really important

 

prompt() is a function belonging to the Window object: http://www.w3schools.com/jsref/met_win_prompt.asp

It returns the value that the user put into the prompt, which is assigned to the guess variable.

 

prompt = ('Password?') wouldn't work, it would just assign the string "Password?" to a variable prompt (overwriting the original function prompt() in the process)

  • Like 1
Link to post
Share on other sites

If you do, then the prompt will appear, but you won't know what the user wrote. The value that the user gives is stored in the variable you assign prompt() to.

  • Like 1
Link to post
Share on other sites

 

 

why do we need to set the "guess" variable's value to empty in this case...

 

In JavaScript it is merely a good practice to get used to. It improves readability of your code when others come back to look at it. JavaScript is mostly type-insensitive and also automatically makes sure that new variables made are truly empty if never initialized. There is no direct type classification when making a variable and JavaScript merely assumes the type by what is currently entered in it, casting (changing) the data to other datatypes when needed.

 

In other languages, like C, the language will assign some random available address to the variable and immediately use whatever is already in that address (usually just garbage data). You're required to determine the datatype at creation so that the language knows how many bits the variable needs to use. If you forget to initialize variables in those languages your code could run away with non-sensible info making it do bad things.

 

So if you plan to write in multiple languages always initializing is simply a good habit to get into, unless you have some special use case in explicitly NOT initializing.

  • Like 1
Link to post
Share on other sites
  • 2 weeks later...

 

In JavaScript it is merely a good practice to get used to. It improves readability of your code when others come back to look at it. JavaScript is mostly type-insensitive and also automatically makes sure that new variables made are truly empty if never initialized. There is no direct type classification when making a variable and JavaScript merely assumes the type by what is currently entered in it, casting (changing) the data to other datatypes when needed.

 

In other languages, like C, the language will assign some random available address to the variable and immediately use whatever is already in that address (usually just garbage data). You're required to determine the datatype at creation so that the language knows how many bits the variable needs to use. If you forget to initialize variables in those languages your code could run away with non-sensible info making it do bad things.

 

So if you plan to write in multiple languages always initializing is simply a good habit to get into, unless you have some special use case in explicitly NOT initializing.

Thanks alot bro

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...