Gift Guide

Learning JavaScript: A Hands-On Guide to the Fundamentals of Modern JavaScript / Edition 1

Paperback (Print)
Used and New from Other Sellers
Used and New from Other Sellers
from $15.75
Usually ships in 1-2 business days
(Save 60%)
Other sellers (Paperback)
  • All (14) from $15.75   
  • New (8) from $21.91   
  • Used (6) from $15.75   


Get Started Fast with Modern JavaScript Web Development!

With the arrival of HTML5, jQuery, and Ajax, JavaScript web development skills are more valuable than ever! This complete, hands-on JavaScript tutorial covers everything you need to know now. Using line-by-line code walkthroughs and end-of-chapter exercises, top web developer and speaker Tim Wright will help you get results fast, even if you’ve never written a line of JavaScript before.

Smart, friendly, enthusiastic, and packed with modern examples, Learning JavaScript covers both design-level and development-level JavaScript. You’ll find expert knowledge and best practices for everything from jQuery and interface design to code organization and front-end templating. Wright’s focused coverage includes regular break points and clear reviews that make modern JavaScript easier to learn—and easier to use!

Learning JavaScript is your fastest route to success with JavaScript—whether you’re entirely new to the language or you need to sharpen and upgrade skills you first learned a decade ago!

Coverage includes

• Mastering all of the JavaScript concepts and terminology you need to write new programs or efficiently modify existing code

• Creating robust, secure code for both the design and development levels

• Maximizing usability, reusability, accessibility, clarity, security, and performance

• Taking full advantage of the browser environments your code will run in

• Accessing the DOM to create behaviors and data interactions

• Storing data for easy and efficient access

• Using variables, functions, loops, and other core language features

• Interacting with users through events

• Communicating with servers through Ajax

• Improving your productivity with JavaScript libraries

Read More Show Less

Product Details

  • ISBN-13: 9780321832740
  • Publisher: Addison-Wesley
  • Publication date: 8/16/2012
  • Series: Learning Series
  • Edition number: 1
  • Pages: 360
  • Sales rank: 636,654
  • Product dimensions: 7.00 (w) x 8.90 (h) x 0.80 (d)

Meet the Author

Tim Wright has been a web designer and front-end developer since 2004, primarily focusing on CSS, HTML, accessibility, and building applications that scale from desktop to mobile device. Wright has worked at various universities nationwide, fostering Web standards at each of them. Wright has written on front-end development for popular online web design publications such as Smashing Magazine, SitePoint, and Web Designer Depot, and has spoken at events including Future of Web Design.

Read More Show Less

Table of Contents

Chapter 1: Progressive Enhancement 3
Defining Progressive Enhancement 3

History 4

Purpose 5

Accessibility 5

Reusability 5

Progressive Enhancement Versus Graceful

Degradation 6

Structure Layer 6

Adding More Meaning with HTML5 8

Presentation Layer 9

Inline CSS 10

Linking Up Your Stylesheet 10

Behavior Layer 12

Inline JavaScript 12

Embedded JavaScript 13

External and Unobtrusive JavaScript 15

Benefits of Progressive Enhancement 16

Performance 17

Building for the Future 17

The Touch Interface 18

Final Words on Progressive Enhancement 19

Summary 20

Exercises 20

Chapter 2: JavaScript in the Browser 21

A People’s History of JavaScript 21

Origins 22

Progressive Enhancement 23

The Behavior Layer 24

Moving Past Today 24

Browser Interactions with JavaScript 25

HTTP Requests 26

JavaScript and Rendering Engines 29

What JavaScript Can Do 30

Modifying HTML 31

Communicating with the Server 31

Storing Data 31

How You Should Use JavaScript 32

Improving User Experience 32

Using JavaScript Responsibly 32

Creating Fallbacks 34

Tools to Help You Use JavaScript 36

Tools Built into the Language 36

Tools Built into the Browser 37

Summary 38

Exercises 38

Chapter 3: JavaScript Terminology 39

Basics 39

Document Object Model (DOM) 39

Parents 40

Children 40

Siblings 41

Variables 41

Strings 43

Comments 43

Operators 44

Use Strict 45

Storage 45

Cache 45

Arrays 45

Cookies 46

JavaScript Object Notation (JSON) 46

Objects 47

Creating Interaction 47

Loops 48

Conditionals 48

switch Statement 49

Functions 50

Anonymous Functions 51

Callback Functions 52

Methods 53

Events 54

Ajax 54

Summary 55

Exercises 55

Chapter 4: Accessing the DOM 57

What Is the DOM? 57

The DOM Tree 58

Element Nodes 59

Text Nodes 60

Attribute Nodes 62

Working with the Element Node 62

Targeting by ID 63

Targeting by Tag Name 64

Targeting by Class 67

Using CSS Selectors in JavaScript to Target Nodes 68

Working with the Attribute Node 70

Getting an Attribute 71

Setting an Attribute 72

Removing an Attribute 73

Working with the Text Node and Changing Content 73

Moving Around the DOM 74

Accessing First and Last Child 76

Dynamically Adding and Removing Nodes from the

DOM 77

Adding Elements to the DOM 77

Removing Elements from the DOM 78

Summary 79

Exercises 79

Chapter 5: Storing Data in JavaScript 81

Variables 81

Strings 82

Numbers 83

Boolean 84

Performance in Variables 84

Arrays 85

Basic Array 85

Associative Array 87

Multidimensional Array 87

Pushing Data into an Array 89

Working with Array Methods 89

join 90

slice 90

shift and unshift 91

pop 92

concat 92

sort 93

Objects 93

Performance in Objects 94


Benefits of Using JSON 96

Using an API 96

Web Storage in HTML5 97

localStorage and sessionStorage 97

setItem 97

getItem 98

removeItem 98

Storing Chunks of Data with JSON 99

Using Web Storage Responsibly 100

Summary 101

Exercises 101

Chapter 6: Variables, Functions, and Loops 103

Defining Variables 103

Grouping Variables 104

Reserved Terms 104

Functions 105

Basic Functions 106

Anonymous Functions 107

Scope 108

Calling a Function with a Function 109

Returning Data 110

A Function as a Method 112

Loops 113

for Loop 114

Conditionals 116

if Statement 116

if/else Statement 117

switch Statement 118

if versus switch 119

Putting It All Together 120

Summary 121

Exercises 122

Chapter 7: Interacting with the User Through Events 123

Attaching an Event 124

Event Handlers 124

Event Listeners 125

Binding Events 128

Unbinding Events 129

Mouse and Keyboard Events 130

click 132

focus and blur 134

Accessibility 135

change 135

mouseover and mouseout (hovering) 136

submit 137

Preventing Default Behavior 139

keydown, keypress, and keyup 139

Putting It All Together 140

Touch and Orientation Events 143

touchstart and touchend 144

touchmove 145

orientationchange 145

Support for Touch Events 146

Putting It All Together 147

Summary 148

Exercises 148

Chapter 8: Communicating with the Server Through

Ajax 149

Ajax History 150

Server Communication 151

The XMLHttpRequest 152

Creating an Ajax Call 154

Sending a Request to the Server 155

Receiving Data Back from the Server 158

Making Repeat Ajax Calls 163

Ajax Data Formats 164

XML 165

HTML 166

JSON 167

Ajax Accessibility 168

Live Regions and ARIA 169

Common Ajax Mistakes 170

Providing Feedback 170

Putting It All Together 172

Where Is Ajax Going? 177

Summary 177

Exercises 178

Chapter 9: Code Organization 179

General Coding Style Rules 180

Scope 181

Failing Quickly 183

User Experience 185

Code Design 185

Files and Directories 186

In-document Script 187

Variable Declarations 188

Variable and Function Naming 189

Comments 190

Indentation 192

Whitespace 193

Statement Spacing 194

Line Breaks 195

Math and Operators 196

Using eval() 197

Taking Style Guides Too Far 199

Code Structure 200

Functions 200

Anonymous Functions 201

Functions as Variables 202

Functions as Methods 202

JavaScript Development Patterns 204

Summary 208

Exercises 209

Chapter 10: Making JavaScript Easier with Libraries 211

JavaScript Library Basics 212

The Library Learning Process 213

Syntax 214

Focusing on the Goal 214

Creating Shortcuts 215

Fixing Browser Issues 216

Popular Libraries 216

jQuery Basics 221

document.ready 222

Selectors 223

Traveling Through the DOM 225

Adding Style Information 226

Binding Events 227

Animation 227

jQuery Nonbasics 228

Using Ajax in jQuery 228

Looping Through Data in jQuery 230

Chaining Functions 232

Extending Libraries Through Plug-ins 233

Building a Plug-in 234

The Good of Libraries 236

Popularity and Community 236

Efficient Code 237

The Bad of Libraries 238

Overhead 238

Performance 239

Overreliance and Shelf Life 239

Using Microlibraries 240

The Good 240

The Bad 241

Summary 242

Exercises 242

Chapter 11: HTML5 JavaScript APIs 243

What Is HTML5? 244

The Markup (aka HTML) 244

Creating Better Semantics 245

Building More Accessible Content 245

The JavaScript APIs 248

The navigator Object 248

Geolocation 249

Audio and Video 251

History API 254

Web Workers 259

Device API 265

The Battery Status API 266

The Vibration API 267

The Network Information API 268

Using This Today with Feature Detection 270

Summary 271

Exercises 272

Chapter 12: Moving Forward with JavaScript 273

A Brief Review of Key Topics 274

Progressive Enhancement 274

DOM Manipulation 275

Data Storage 277

Server Communication 279

JavaScript for Designers 279

Advanced Interface Design 280

CSS Transforms in JavaScript 284

Interacting from the Desktop 289

JavaScript for Developers 293

JavaScript Templates 294

JavaScript on the Server with NodeJS 299

Summary 302

Exercises 303

Answers 305

Index 309

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing 1 Customer Reviews
  • Anonymous

    Posted August 20, 2012

    No text was provided for this review.

Sort by: Showing 1 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)