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 trialSam Morpeth
8,756 PointsI can't even get the prompt box to appear.
I can't even get the prompt box to appear when trying to replicate the code from this video. I tried following the video all the way to the end to see if anything would change.
I've attached a snapshot of the prompt box code: https://w.trhou.se/gy9nj2i46u
I'm using Firefox if that helps.
Kevin Gates
15,053 PointsSteven Parker : thanks. I just started helping out on Community recently. Must've posted it in the wrong spot. I moved it if you'd still like to upvote it. :)
Steven Parker
231,275 PointsKevin Gates — Welcome to the community! You may find helping addictive — if you check the forum points on my profile, you can tell I've done it a bit myself.
I was surprised to discover how much I enjoyed helping folks, and that I often learned new things myself while doing it.
And perhaps Sam Morpeth will find your reply helpful and judge it "best answer".
2 Answers
Kevin Gates
15,053 PointsIt is your use of quotes. You start your string with double quotes. When you refer to "list" and "quit", you use double quotes, which essentially means you are ending the string and then causing bad syntax. You could update it to this instead:
search = prompt("Search for a product in our shop. Type 'list' to show all of the products and 'quit' to exit");
OR use the escape character which is \
search = prompt("Search for a product in our shop. Type \"list\" to show all of the products and \"quit\" to exit");
OR you can reverse the use of quotations:
search = prompt('Search for a product in our shop. Type "list" to show all of the products and "quit" to exit');
Seth L
6,212 PointsI've also heard on a few podcasts people are suggesting using back-ticks "" for this purpose, because then you can use regular double/single quotes inside without issue. It also helps later with template literals shenanigans (
${}`) that I haven't quite gotten the hang of yet. But they only take back-ticks because JS occasionally likes to be evil.
Sam Morpeth
8,756 PointsIt was very helpful. Kind of embarrassing to make such a small mistake after spending so many hours with the language. Oh well!
Kevin Gates
15,053 PointsBackticks are helpful for what is called Template Literals or Template Strings: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals
Template Literals are not supported in IE11 or lower: https://caniuse.com/#feat=template-literals
Therefore, unless you're using something like Babel to compile your code, then if you need to have your application work on IE 11, you should use standard quotes.
However, all that said, the purpose of this course is to teach the basics and not presume them. Knowing these intricate parts are helpful for understanding the language and how it works. Later when one learns ES6 +, you can find all the neat shortcuts :)
Steven Parker
231,275 PointsSteven Parker
231,275 PointsKevin Gates — good reply, you should post it as an answer instead of a comment. That makes it available for voting and potential selection as "best answer". If I were a mod, I'd happily promote it for you.