Books & Videos

Table of Contents

  1. Style Guidelines

    1. Chapter 1 Basic Formatting

      1. Indentation Levels
      2. Statement Termination
      3. Line Length
      4. Line Breaking
      5. Blank Lines
      6. Naming
      7. Literal Values
    2. Chapter 2 Comments

      1. Single-Line Comments
      2. Multiline Comments
      3. Using Comments
      4. Documentation Comments
    3. Chapter 3 Statements and Expressions

      1. Brace Alignment
      2. Block Statement Spacing
      3. The switch Statement
      4. The with Statement
      5. The for Loop
      6. The for-in Loop
    4. Chapter 4 Variables, Functions, and Operators

      1. Variable Declarations
      2. Function Declarations
      3. Function Call Spacing
      4. Immediate Function Invocation
      5. Equality
      6. eval()
      7. Primitive Wrapper Types
  2. Programming Practices

    1. Chapter 5 Loose Coupling of UI Layers

      1. What Is Loose Coupling?
      2. Keep JavaScript Out of CSS
      3. Keep CSS Out of JavaScript
      4. Keep JavaScript Out of HTML
      5. Keep HTML Out of JavaScript
    2. Chapter 6 Avoid Globals

      1. The Problems with Globals
      2. Accidental Globals
      3. The One-Global Approach
      4. The Zero-Global Approach
    3. Chapter 7 Event Handling

      1. Classic Usage
      2. Rule #1: Separate Application Logic
      3. Rule #2: Don’t Pass the Event Object Around
    4. Chapter 8 Avoid Null Comparisons

      1. Detecting Primitive Values
      2. Detecting Reference Values
      3. Detecting Properties
    5. Chapter 9 Separate Configuration Data from Code

      1. What Is Configuration Data?
      2. Externalizing Configuration Data
      3. Storing Configuration Data
    6. Chapter 10 Throw Your Own Errors

      1. The Nature of Errors
      2. Throwing Errors in JavaScript
      3. Advantages of Throwing Errors
      4. When to Throw Errors
      5. The try-catch Statement
      6. Error Types
    7. Chapter 11 Don’t Modify Objects You Don’t Own

      1. What Do You Own?
      2. The Rules
      3. Better Approaches
      4. A Note on Polyfills
      5. Preventing Modification
    8. Chapter 12 Browser Detection

      1. User-Agent Detection
      2. Feature Detection
      3. Avoid Feature Inference
      4. Avoid Browser Inference
      5. What Should You Use?
  3. Automation

    1. Chapter 13 File and Directory Structure

      1. Best Practices
      2. Basic Layout
    2. Chapter 14 Ant

      1. Installation
      2. The Build File
      3. Running the Build
      4. Target Dependencies
      5. Properties
      6. Buildr
    3. Chapter 15 Validation

      1. Finding Files
      2. The Task
      3. Improving the Target
      4. Other Improvements
      5. Buildr Task
    4. Chapter 16 Concatenation and Baking

      1. The Task
      2. Line Endings
      3. Headers and Footers
      4. Baking Files
    5. Chapter 17 Minification and Compression

      1. Minification
      2. Compression
    6. Chapter 18 Documentation

      1. JSDoc Toolkit
      2. YUI Doc
    7. Chapter 19 Automated Testing

      1. YUI Test Selenium Driver
      2. Yeti
      3. PhantomJS
      4. JsTestDriver
    8. Chapter 20 Putting It Together

      1. Missing Pieces
      2. Planning the Build
      3. Using a CI System
  1. Appendix JavaScript Style Guide

    1. Indentation

    2. Line Length

    3. Primitive Literals

    4. Operator Spacing

    5. Parentheses Spacing

    6. Object Literals

    7. Comments

    8. Variable Declarations

    9. Function Declarations

    10. Naming

    11. Strict Mode

    12. Assignments

    13. Equality Operators

    14. Ternary Operator

    15. Statements

    16. White Space

    17. Things to Avoid

  2. Appendix JavaScript Tools

    1. Build Tools

    2. Documentation Generators

    3. Linting Tools

    4. Minification Tools

    5. Testing Tools

  3. Colophon