You have to make a choice. Choose...wisely.

Get occasional notifications about things like product discounts, blog posts, and new or updated tutorials. Unsubscribe at any time.

Gift Delivery Options
Quick Checkout
or Pay by Credit Card
Error processing your payment
  • You didn't choose whether or not to be added to the mailing list
Confirm
$0.00

Payments and credit card details are securely managed and protected by Learn Enough's payment processor, Stripe. More information on their site:

CART
Total
$0.00

Your Cart is Empty

$30
$300
$300
$XY
$XY
1234

Learn to speak the programming language of web browsers

Learn Enough JavaScript Web Basics 03
Learn Enough JavaScript to Be Dangerous teaches you the basics of JavaScript, the only programming language that can be run inside web browsers. You’ll learn the latest JavaScript technologies (including Node.js and ES6) en route to deploying a real interactive website to the live Web. Read full post
- or -
SCROLL DOWN TO LEARN MORE
ebooks
320 pages
screencasts
7 hours
course
11 chapters
 
59 videos
 
75 exercises

Get Started Now!

Course Subscriptions

$ 15
per month
Course

Full online version of the tutorial, embedded streaming videos for all sections, exercises with editable answers, progress tracking, and membership in the Learn Enough Society (community exercise answers, private chat group). Pause your subscription at any time!

$ 49
per month
All Access Subscription
All Access Subscription includes the course version of all the tutorials (streaming video, exercise answers, and progress tracking), and access to the Learn Enough Society to get help if you need it
MORE INFO

à la carte

Book & Screencast Downloads

Add Books & Offline Videos
Ebook downloads are available in EPUB, MOBI/Kindle, and PDF formats in addition to access to the full online book.
Hours of screencast videos that walk you step-by-step through the tutorials are avilable in MP4 format.
Best
Value!
Get all of the downloadable versions of the book as well as the online book, and also offline videos.
Need a little help?

Learn Enough offers a generous scholarship program to help out in case cost is a factor. We’ve already awarded over 1000 Learn Enough Scholarships to a wide variety of recipients, including students, people between jobs, and residents of countries with unfavorable exchange rates. Applications are quick, easy, and 100% confidential. Learn More

Money-Back Guarantee

All our tutorials come with a 100% money-back guarantee. If for any reason you aren’t satisfied with any tutorial purchase, just let us know and we’ll refund your payment.

Learn JavaScript and

Make Your Sites Dance

Tutorial 03 in the
Web Basics Series

Every technical person should know the basics of the World Wide Web, and this set of courses covers the undeniable essentials: HTML, the universal language of the Web; CSS & Layout, which covers front-end styling by building a simple but industrial-strength website; and JavaScript, a programming language that allows you to build rich interactions for users.

Want to buy the downloadable version of all the tutorials in the bundle, check out our bundled download options!

The native programming language of the World Wide Web

Making sites respond to actions

As the only language that can be executed inside web browsers, JavaScript is an essential part of every programmer’s toolkit. Learn Enough JavaScript to Be Dangerous is designed to get you started writing practical and modern JavaScript programs as fast as possible, using the latest JavaScript technologies (including Node.js and ES6), with a focus on the real tools used every day by software developers.

Unlike most JavaScript tutorials, Learn Enough JavaScript to Be Dangerous treats JavaScript as a general-purpose programming language right from the start, so the examples won’t be confined to the browser. The result is a unusually broad and solid foundation not only for web development, but for computer programming generally.

To be productive with JavaScript, you don’t have to know everything about it—you just have to learn enough to be dangerous.

JavaScript basics

Fundamentals of browser scripting

Learn Enough JavaScript to Be Dangerous gets off to a quick start by deploying a simple but real dynamic site to the live Web. You’ll also learn how to use JavaScript to write a simple shell script and to execute JavaScript interactively using a Read-Eval-Print loop (REPL). En route, you’ll discover that you already own the best interactive system for learning JavaScript—a computer!

Common data structures

How to manage and handle data

Next, you’ll take a tour of common data structures in JavaScript, including Strings, Arrays, and other native objects like Dates and Regular Expressions. These structures form the essential building blocks for longer programs.

Functions, object, and prototypes

Perform actions in an efficent way

You’ll then learn about functions, objects, and prototypes. This section of the tutorial includes the rarely taught but elegant and hugely valuable set of techniques called functional programming—the same kind of programming used by Google to process data from the Web. You’ll also learn about the important practice of test-driven development en route to writing and publishing a simple Node module.

Add interactivity to websites

Enhance usability and interaction

The final chapters of Learn Enough JavaScript to Be Dangerous cover Document Object Model manipulation to make dynamic, interactive websites; professional-grade shell scripts with Node.js; and an image gallery application that fulfills a promise made in Learn Enough CSS & Layout to Be Dangerous. The result is a well-rounded command of JavaScript, with skills ranging from file manipulation at the command line to a beautiful photo application on the live Web.

Happy people

saying nice things!

Jimmy Wales Founder, Wikipedia

Q: What is Jimmy Wales' favorite book?

A: It changes often. At the moment, it’s Ruby on Rails Tutorial by Michael Hartl. :)


Quora link
About the Javascript Tutorial

I have just completed the Learn Enough JavaScript to Be Dangerous tutorial and I want to thank you for this really great course… I am impressed how much added value the videos provide. I really appreciate the clarity of the explanations which allow to better understand programming concepts and how to explain them. Top notch!

— Alan K.
<blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">Finished <a href="https://twitter.com/LearnEnough?ref_src=twsrc%5Etfw">@LearnEnough</a>&#39;s JavaScript tutorial...feeling dangerous! 😁😁 Thanks for the awesome tutorial <a href="https://twitter.com/mhartl?ref_src=twsrc%5Etfw">@mhartl</a>!</p>&mdash; Sean Cannon (@seanecannon) <a href="https://twitter.com/seanecannon/status/1025539434282921984?ref_src=twsrc%5Etfw">August 4, 2018</a></blockquote>
About the Learn Enough Courses

I must say, this Learn Enough series is a masterpiece of education. Thank you for this incredible work!

— Michael K.

I must say, this Learn Enough series is a masterpiece of education. Thank you for this incredible work!

— Michael K.
<blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">I have nothing but fantastic things to say about <a href="https://twitter.com/LearnEnough?ref_src=twsrc%5Etfw">@LearnEnough</a> courses. I am just about finished with the <a href="https://twitter.com/hashtag/javascript?src=hash&amp;ref_src=twsrc%5Etfw">#javascript</a> course. I must say, the videos are mandatory because <a href="https://twitter.com/mhartl?ref_src=twsrc%5Etfw">@mhartl</a> will play the novice, and share in the joy of having something you wrote actually work! 🤓</p>&mdash; claudia marie (@StarvingHearts) <a href="https://twitter.com/StarvingHearts/status/1134234858157355008?ref_src=twsrc%5Etfw">May 30, 2019</a></blockquote>

I want to thank you for the amazing job you have done with the tutorials. They are likely the best tutorials I have ever read.

— Pedro I.

I have been trying to learn web development and programming on and off for the past 3 years and your website is the first one that I feel does the job right.

— Janelle S.

Just bought the new ebook and want to say keep up the great work!! The Learn Enough to Be Dangerous series re-ignited my desire to code after 10+ years of “meh”.

— Diane Y.

The Learn Enough Society and the courses are incredible. It’s the best value in the market of online courses in my opinion. Like you say, it’s learning to tech, which is very useful in our world.

— Sébastien D.

I just meant to tell you: your tutorial books from the Learn Enough series are awesome! The books are well-written, clear, concise, super-useful, and even fun to read. Thank you so, so much for this! I have bought the first three and will buy whatever you publish next. Keep up doing this very good work and thanks again.

— Pierre W.

Have been following the whole “Learn Enough to Be Dangerous” series and am VERY impressed with it. I am a project manager who works with software developers daily. These sessions have provided me with a huge amount very useful information, to the extent that I now not only understand what the dev guys are talking about, but am starting to use the tools (command line, Git, etc.) that they use.

— Brian
Amazon link

Michael Hartl is one of the best educators around when it comes to web development. I have been following him for a long time, and everything he produces is top quality. If you are looking for a quick way to become a thorough and productive professional web developer, Hartl’s books are a great place to start.

— Abram Bailey
Amazon link
<blockquote class="twitter-tweet" data-conversation="none" data-lang="en"><p lang="en" dir="ltr">Also - if you are working through <a href="https://twitter.com/RailsTutorial?ref_src=twsrc%5Etfw">@RailsTutorial</a> you will probably check out <a href="https://twitter.com/LearnEnough?ref_src=twsrc%5Etfw">@LearnEnough</a> quite soon, which is an incredible resource for people starting out. Same high quality as the rails tutorial, while still digestible for people starting out.</p>&mdash; Michael Wallbaum (@mwallba) <a href="https://twitter.com/mwallba/status/988590924203679744?ref_src=twsrc%5Etfw">April 24, 2018</a></blockquote>

Hi, my name is Philip, and I’m a beginning learner of web development. I’ve dabbled in small ways in Ruby/Rails for about a year and a half. Occasionally, I write ruby scripts to solve problems at my job. I also dabble in learning: JavaScript, Ember, more Ruby/Rails, brief intro readings into Scala.

I’ve tried Codeschool, Codecademy, and I’ll stop there, so you don’t spend the next 3 hours reading all the different learning resources I’ve tried.

Ruby on Rails Tutorial (Rails 5) is undoubtedly, the most effective and educational resource I’ve ever come across when it comes to learning anything about web development or writing any code on any level.

Here’s what you seem to understand that everyone else just gets wrong: There’s a big spectrum between the very beginner basics: declaring variables, to voodoo, magical, incantational trickery of witchcraft, like building your own web server.

Almost all tutorials make this mistake. The first couple “lessons” are good for people who don’t even have a clue what computer programming is and then suddenly, there’s a big jump to what seem to be concepts that only seasoned developers have mastered.

Thanks for such a great, educational guide in Ruby on Rails.

— Philip

If that all sounds good...

Try the Tutorial Out

About the Author
Michael-hartl

Michael Hartl

Michael Hartl is the creator of the Ruby on Rails Tutorial, one of the leading introductions to web development, and is cofounder and principal author at Learn Enough. Previously, he was a physics instructor at the California Institute of Technology (Caltech), where he received a Lifetime Achievement Award for Excellence in Teaching. He is a graduate of Harvard College, has a Ph.D. in Physics from Caltech, and is an alumnus of the Y Combinator entrepreneur program.

Join the Mailing List

Get occasional notifications about things like product discounts, blog posts, and new or updated tutorials. Unsubscribe at any time.