Table of contents : Table of Contents About the Author About the Technical Reviewer Acknowledgments Chapter 1: Introduction 1.1 What You Will Learn 1.2 How to Use This Book 1.3 For Younger Programmers Chapter 2: A Short History of Computers 2.1 The Prehistory of Computers 2.2 The Idea of a Computer 2.3 The Age of the Computer 2.4 Computers in the Age of Networks 2.4.1 Review 2.4.2 Apply What You Have Learned Chapter 3: How Computers Communicate 3.1 The Layers of Internet Communication 3.2 Communicating Using HTTP 3.3 Connecting with a Remote Server Manually 3.4 How Computers Are Located on the Internet 3.4.1 Review 3.4.2 Apply What You Have Learned Chapter 4: How a Computer Looks at Data 4.1 What Computer Memory Looks Like 4.2 Using Numbers to Represent Data 4.3 Sequences in Data 4.4 Using Numbers to Represent Letters 4.5 What Is a File Format? 4.5.1 Review 4.5.2 Apply What You Have Learned Chapter 5: How Computers Work 5.1 Parts of a Computer 5.2 A Simplified Paper Machine Simulation 5.3 A Short Program: Multiplying by 2 5.3.1 Setting Up the Simulation 5.3.2 Running the Simulation 5.4 Adding a List of Numbers 5.5 Machine Opcode Tables 5.5.1 Review 5.5.2 Apply What You Have Learned Chapter 6: The HTML File Format 6.1 A Quick Introduction to HTML 6.2 The Parts of an HTML Document 6.3 Adding Attributes to Tags 6.4 Tags That Refer to Other Documents 6.5 Relative URLs 6.6 Other HTML Features 6.6.1 Entities 6.6.2 Lists 6.6.3 Table Tags 6.6.4 Form Tags 6.6.5 Standard Attributes 6.6.6 Comments, Declarations, Processing Instructions, and CDATA Blocks 6.6.7 Review 6.6.8 Apply What You Have Learned Chapter 7: Introduction to Cascading Style Sheets 7.1 The Origin of Cascading Style Sheets 7.2 The Structure of a CSS Document 7.3 Understanding Selectors 7.4 The CSS Box Model 7.5 Other Capabilities of CSS 7.5.1 Review 7.5.2 Apply What You Have Learned Chapter 8: Your First JavaScript Program 8.1 A Short History of JavaScript 8.2 A Simple JavaScript Program 8.3 Moving the JavaScript to Its Own File 8.3.1 Review 8.3.2 Apply What You Have Learned Chapter 9: Basic JavaScript Syntax 9.1 Elements of Syntax 9.2 Assignment Statements 9.3 Control Structures 9.3.1 The if Statement 9.3.2 The while Statement 9.3.3 The for Statement 9.3.4 Review 9.3.5 Apply What You Have Learned Chapter 10: Introducing Functions and Scope 10.1 Your First Function 10.2 More Function Examples 10.3 Functions Calling Functions 10.4 Variable Scopes 10.4.1 Review 10.4.2 Apply What You Have Learned Chapter 11: Grouping Values Together with Objects and Arrays 11.1 A Basic Introduction to Objects 11.2 Simplifying Object Creation 11.3 Storing Sequences of Values Using Arrays 11.4 Using Arrays in Programs 11.5 Mixing Objects and Arrays 11.6 Object Methods 11.6.1 Review 11.6.2 Apply What You Have Learned Chapter 12: Interacting with Web Pages 12.1 Using the JavaScript Console 12.2 Finding and Modifying Web Page Elements 12.3 Creating New HTML Elements 12.4 Communicating with Input Fields 12.5 Adding Functionality to Buttons 12.6 Putting It All Together 12.7 Logging to the Console 12.7.1 Review 12.7.2 Apply What You Have Learned Chapter 13: Recursive Functions and the Stack 13.1 The Program Stack 13.2 Local Variables in the Stack 13.3 Recursive Functions 13.3.1 Review 13.3.2 Apply What You Have Learned Chapter 14: Manipulating Functions and Scopes 14.1 Functions as Parameters to Functions 14.2 Functions That Return Functions 14.3 Functions That Create Functions 14.4 Currying Functions 14.5 Anonymous Functions 14.5.1 Review 14.5.2 Apply What You Have Learned Chapter 15: Intermediate Objects 15.1 Attaching Functions to Objects 15.2 Using Objects Productively 15.3 Constructing Objects 15.3.1 Review 15.3.2 Apply What You Have Learned Chapter 16: Modernizing JavaScript 16.1 Declaring Variables with let and const 16.2 Destructuring Assignments 16.3 Accessing Properties with Strings 16.4 Function Syntax 16.4.1 Review 16.4.2 Apply What You Have Learned Chapter 17: Working with Remote Services (APIs) 17.1 Getting an API Key 17.2 JSON: The Language of Data 17.3 Accessing the Network with JavaScript 17.4 The Query String 17.5 Interacting with a Web Page 17.6 A Few Other Bits to Note 17.6.1 Review 17.6.2 Apply What You Have Learned Chapter 18: Writing Server-Side JavaScript 18.1 Programming Languages 18.2 Using JavaScript Outside of the Browser 18.3 A Small Web Service Using Node 18.4 Why We Need Frameworks 18.5 Making Your Service Available 18.5.1 Review 18.5.2 Apply What You Have Learned Chapter 19: Conclusion Appendix A Glossary Appendix B Operating System and Browser Specifics B.1 The Browser Location Bar B.2 Getting to the Command Line B.2.1 Getting to a Command Line in Windows B.2.2 Getting a Command Line on a Mac B.2.3 Getting a Command Line on Linux B.3 Using a Text Editor B.3.1 Getting Windows Set Up Properly B.3.2 Using a Text Editor in Windows B.3.3 Using a Text Editor in Mac OS B.3.4 Using a Text Editor in Linux B.3.5 Text Encoding Problems B.4 Interacting with a Web Page in Developer Mode B.4.1 Viewing the Source B.4.2 Interacting with the Source B.4.3 The JavaScript Console B.4.4 The Network Tab B.4.5 The Sources Tab B.5 Finding the URL of an Image on the Web B.6 What to Do When a Program Doesn’t Work Appendix C The JavaScript Toolbox on Docker Appendix D Character Encoding Issues D.1 A Short History of Character Encodings D.2 Unicode and International Character Sets D.3 An Abbreviated ASCII Table Appendix E Additional Machine Language Programs E.1 Multiplying Numbers E.2 Writing to the Screen E.3 Writing a Number to the Screen E.4 Going Further Index