Learn Enough JavaScript to be Dangerous: A Tutorial Introduction to Programming with JavaScript, 1st edition

Published by Addison-Wesley Professional (May 12, 2022) © 2022

  • Michael Hartl

VitalSource eTextbook

ISBN-13: 9780137843879
Learn Enough JavaScript to Be Dangerous: A Tutorial Introduction to Programming with JavaScript
Published 2022
  • Available for purchase from all major ebook resellers, including InformIT.com


ISBN-13: 9780137843749
Learn Enough JavaScript to Be Dangerous: A Tutorial Introduction to Programming with JavaScript
Published 2022


  • A print text
  • Free shipping
  • Also available for purchase as an ebook from all major ebook resellers, including InformIT.com
All You Need to Know, and Nothing You Don't, to Write JavaScript for the Web and Beyond
JavaScript plays a key role in modern software development, not only because it is the only language that runs inside virtually all web browsers, but also because it has become widely used for back-end and general-purpose development as well. Although JavaScript is a big language, you don't need to learn "everything" about it to get started, just how to use it efficiently to solve real problems. In Learn Enough JavaScript to Be Dangerous, renowned instructor Michael Hartl teaches the specific concepts, skills, and approaches you need to be professionally productive.
Even if you've never programmed before, Hartl helps you quickly build technical sophistication and master the lore you need to succeed. Treating JavaScript as a general-purpose language right from the start, Hartl offers examples for creating dynamic effects in browsers and for writing scripts and modules using Node.js. Focused exercises help you internalize what matters, without wasting time on details pros don't care about. Soon, it'll be like you were born knowing this stuff--and you'll be suddenly, seriously dangerous.
Learn enough about . . .
  • Rapidly deploying a simple JavaScript app to the live Web
  • Working with strings and other native JavaScript objects
  • Applying functions and elegant, powerful functional-programming techniques
  • Creating new objects with both properties and methods
  • Writing tests and improving code with test-driven development (TDD)
  • Developing and using self-contained, modular NPM software packages
  • Adding interactivity with event listeners, dynamic HTML forms, and DOM manipulation
  • Writing useful, nontrivial JavaScript shell scripts
  • Building an industrial-grade interactive website with JavaScript, from start to finish
Michael Hartl's Learn Enough series includes books and video courses that focus on the most important parts of each subject, so you don't have to learn everything to get started--you just have to learn enough to be dangerous and solve technical problems yourself.
Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
Preface xiii
About the Author xvii

Chapter 1: Hello, World! 1
1.1 Introduction to JavaScript 5
1.2 JS in a Web Browser 7
1.3 JS in a REPL 14
1.4 JS in a File 21
1.5 JS in a Shell Script 22

Chapter 2: Strings 25
2.1 String Basics 25
2.2 Concatenation and Interpolation 27
2.3 Printing 33
2.4 Properties, Booleans, and Control Flow 35
2.5 Methods 44
2.6 String Iteration 50

Chapter 3: Arrays 55
3.1 Splitting 55
3.2 Array Access 56
3.3 Array Slicing 58
3.4 More Array Methods 59
3.5 Array Iteration 62

Chapter 4: Other Native Objects 65
4.1 Math and Number 65
4.2 Dates 69
4.3 Regular Expressions 73
4.4 Plain Objects 81
4.5 Application: Unique Words 83

Chapter 5: Functions 91
5.1 Function Definitions 91
5.2 Functions in a File 95
5.3 Method Chaining 104
5.4 Iteration for Each 110

Chapter 6: Functional Programming 115
6.1 Map 116
6.2 Filter 122
6.3 Reduce 126

Chapter 7: Objects and Prototypes 135
7.1 Defining Objects 135
7.2 Prototypes 139
7.3 Modifying Native Objects 147

Chapter 8: Testing and Test-Driven Development 153
8.1 Testing Setup 154
8.2 Initial Test Coverage 159
8.3 Red 164
8.4 Green 172
8.5 Refactor 177

Chapter 9: Events and DOM Manipulation 187
9.1 A Working Palindrome Page 187
9.2 Event Listeners 192
9.3 Dynamic HTML 202
9.4 Form Handling 205

Chapter 10: Shell Scripts with Node.js 215
10.1 Reading from Files 216
10.2 Reading from URLs 218
10.3 DOM Manipulation at the Command Line 224

Chapter 11: Full Sample App: Image Gallery 235
11.1 Prepping the Gallery 235
11.2 Changing the Gallery Image 242
11.3 Setting an Image as Current 250
11.4 Changing the Image Info 252
11.5 Conclusion 259

Index 263

Need help? Get in touch