JavaScript: The Comprehensive Guide to Learning Professional JavaScript Programming
- Length: 982 pages
- Edition: F
- Language: English
- Publisher: Rheinwerk Computing
- Publication Date: 2022-08-25
- ISBN-10: 1493222864
- ISBN-13: 9781493222865
- Sales Rank: #255949 (See Top 100 Books)
Begin your JavaScript journey with this comprehensive, hands-on guide. You’ll learn everything there is to know about professional JavaScript programming, from core language concepts to essential client-side tasks. Build dynamic web applications with step-by-step instructions and expand your knowledge by exploring server-side development and mobile development. Work with advanced language features, write clean and efficient code, and much more!
- Your all-in-one guide to JavaScript
- Work with objects, reference types, events, forms, and web APIs
- Build server-side applications, mobile applications, desktop applications, and more
- Consult and download practical code examples
Language Review
Refresh your knowledge or learn JavaScript as a beginner with in-depth coverage of JavaScript basics. Understand how to store values, use data types, control flow, and debug your code.
Client-Side Programming
Build dynamic web applications by learning to process events, load content, create images, and use web APIs.
Advanced Concepts
Explore server-side application development with Node.js, mobile application development with React Native and Iconic, and desktop programming with Electron and NW.js. Work with advanced language features and more.
Dear Reader Notes on Usage Table of Contents Book Resources Preface Target Audience Structure of the Book How Should I Read This Book? Acknowledgments 1 Basics and Introduction 1.1 Programming Basics 1.1.1 Communicating with the Computer 1.1.2 Programming Languages 1.1.3 Tools for Program Design 1.2 Introduction to JavaScript 1.2.1 History 1.2.2 Fields of Application 1.3 Summary 2 Getting Started 2.1 Introduction to JavaScript and Web Development 2.1.1 The Relationship among HTML, CSS, and JavaScript 2.1.2 The Right Tool for Development 2.2 Integrating JavaScript into a Web Page 2.2.1 Preparing a Suitable Folder Structure 2.2.2 Creating a JavaScript File 2.2.3 Embedding a JavaScript File in an HTML File 2.2.4 Defining JavaScript Directly within the HTML 2.2.5 Placement and Execution of the <script> Elements 2.2.6 Displaying the Source Code 2.3 Creating Output 2.3.1 Showing the Standard Dialog Window 2.3.2 Writing to the Console 2.3.3 Using Existing UI Components 2.4 Summary 3 Language Core 3.1 Storing Values in Variables 3.1.1 Defining Variables 3.1.2 Using Valid Variable Names 3.1.3 Defining Constants 3.2 Using the Different Data Types 3.2.1 Numbers 3.2.2 Strings 3.2.3 Boolean Values 3.2.4 Arrays 3.2.5 Objects 3.2.6 Special Data Types 3.2.7 Symbols 3.3 Deploying the Different Operators 3.3.1 Operators for Working with Numbers 3.3.2 Operators for Easier Assignment 3.3.3 Operators for Working with Strings 3.3.4 Operators for Working with Boolean Values 3.3.5 Operators for Working with Bits 3.3.6 Operators for Comparing Values 3.3.7 The Optional Chaining Operator 3.3.8 The Logical Assignment Operators 3.3.9 Operators for Special Operations 3.4 Controlling the Flow of a Program 3.4.1 Defining Conditional Statements 3.4.2 Defining Branches 3.4.3 Using the Selection Operator 3.4.4 Defining Multiway Branches 3.4.5 Defining Counting Loops 3.4.6 Defining Head-Controlled Loops 3.4.7 Defining Tail-Controlled Loops 3.4.8 Prematurely Terminating Loops and Loop Iterations 3.5 Creating Reusable Code Blocks 3.5.1 Defining Functions 3.5.2 Calling Functions 3.5.3 Passing and Evaluating Function Parameters 3.5.4 Defining Return Values 3.5.5 Defining Default Values for Parameters 3.5.6 Using Elements from an Array as Parameters 3.5.7 Defining Functions Using Short Notation 3.5.8 Modifying Strings via Functions 3.5.9 Functions in Detail 3.5.10 Calling Functions through User Interaction 3.6 Responding to Errors and Handling Them Correctly 3.6.1 Syntax Errors 3.6.2 Runtime Errors 3.6.3 Logic Errors 3.6.4 The Principle of Error Handling 3.6.5 Catching and Handling Errors 3.6.6 Triggering Errors 3.6.7 Errors and the Function Call Stack 3.6.8 Calling Certain Statements Regardless of Errors That Have Occurred 3.7 Commenting the Source Code 3.8 Debugging the Code 3.8.1 Introduction 3.8.2 A Simple Code Example 3.8.3 Defining Breakpoints 3.8.4 Viewing Variable Assignments 3.8.5 Running a Program Step by Step 3.8.6 Defining Multiple Breakpoints 3.8.7 Other Types of Breakpoints 3.8.8 Viewing the Function Call Stack 3.9 Summary 4 Working with Reference Types 4.1 Difference between Primitive Data Types and Reference Types 4.1.1 The Principle of Primitive Data Types 4.1.2 The Principle of Reference Types 4.1.3 Primitive Data Types and Reference Types as Function Arguments 4.1.4 Determining the Type of a Variable 4.1.5 Outlook 4.2 Encapsulating State and Behavior in Objects 4.2.1 Introduction to Object-Oriented Programming 4.2.2 Creating Objects Using Literal Notation 4.2.3 Creating Objects via Constructor Functions 4.2.4 Creating Objects Using Classes 4.2.5 Creating Objects via the Object.create() Function 4.2.6 Accessing Properties and Calling Methods 4.2.7 Adding or Overwriting Object Properties and Object Methods 4.2.8 Deleting Object Properties and Object Methods 4.2.9 Outputting Object Properties and Object Methods 4.2.10 Using Symbols to Define Unique Object Properties 4.2.11 Preventing Changes to Objects 4.3 Working with Arrays 4.3.1 Creating and Initializing Arrays 4.3.2 Accessing Elements of an Array 4.3.3 Adding Elements to an Array 4.3.4 Removing Elements from an Array 4.3.5 Copying Some of the Elements from an Array 4.3.6 Sorting Arrays 4.3.7 Using Arrays as a Stack 4.3.8 Using Arrays as a Queue 4.3.9 Finding Elements in Arrays 4.3.10 Copying Elements within an Array 4.3.11 Converting Arrays to Strings 4.4 Extracting Values from Arrays and Objects 4.4.1 Extracting Values from Arrays 4.4.2 Extracting Values from Objects 4.4.3 Extracting Values within a Loop 4.4.4 Extracting Arguments of a Function 4.4.5 Copying Object Properties to Another Object 4.4.6 Copying Object Properties from Another Object 4.5 Working with Strings 4.5.1 The Structure of a String 4.5.2 Determining the Length of a String 4.5.3 Searching within a String 4.5.4 Extracting Parts of a String 4.6 Using Maps 4.6.1 Creating Maps 4.6.2 Basic Operations 4.6.3 Iterating over Maps 4.6.4 Using Weak Maps 4.7 Using Sets 4.7.1 Creating Sets 4.7.2 Basic Operations of Sets 4.7.3 Iterating over Sets 4.7.4 Using Weak Sets 4.8 Other Global Objects 4.8.1 Working with Date and Time Information 4.8.2 Performing Complex Calculations 4.8.3 Wrapper Objects for Primitive Data Types 4.9 Working with Regular Expressions 4.9.1 Defining Regular Expressions 4.9.2 Testing Characters against a Regular Expression 4.9.3 Using Character Classes 4.9.4 Limiting Beginning and End 4.9.5 Using Quantifiers 4.9.6 Searching for Occurrences 4.9.7 Searching All Occurrences within a String 4.9.8 Accessing Individual Parts of an Occurrence 4.9.9 Searching for Specific Strings 4.9.10 Replacing Occurrences within a String 4.9.11 Searching for Occurrences 4.9.12 Splitting Strings 4.10 Functions as Reference Types 4.10.1 Using Functions as Arguments 4.10.2 Using Functions as Return Values 4.10.3 Standard Methods of Each Function 4.11 Summary 5 Dynamically Changing Web Pages 5.1 Structure of a Web Page 5.1.1 Document Object Model 5.1.2 The Different Types of Nodes 5.1.3 The Document Node 5.2 Selecting Elements 5.2.1 Selecting Elements by ID 5.2.2 Selecting Elements by Class 5.2.3 Selecting Elements by Element Name 5.2.4 Selecting Elements by Name 5.2.5 Selecting Elements by Selector 5.2.6 Selecting the Parent Element of an Element 5.2.7 Selecting the Child Elements of an Element 5.2.8 Selecting the Sibling Elements of an Element 5.2.9 Calling Selection Methods on Elements 5.2.10 Selecting Elements by Type 5.3 Working with Text Nodes 5.3.1 Accessing the Text Content of an Element 5.3.2 Modifying the Text Content of an Element 5.3.3 Modifying the HTML below an Element 5.3.4 Creating and Adding Text Nodes 5.4 Working with Elements 5.4.1 Creating and Adding Elements 5.4.2 Removing Elements and Nodes 5.4.3 The Different Types of HTML Elements 5.5 Working with Attributes 5.5.1 Reading the Value of an Attribute 5.5.2 Changing the Value of an Attribute or Adding a New Attribute 5.5.3 Creating and Adding Attribute Nodes 5.5.4 Removing Attributes 5.5.5 Accessing CSS classes 5.6 Summary 6 Processing and Triggering Events 6.1 The Concept of Event-Driven Programming 6.2 Responding to Events 6.2.1 Defining an Event Handler via HTML 6.2.2 Defining an Event Handler via JavaScript 6.2.3 Defining Event Listeners 6.2.4 Defining Multiple Event Listeners 6.2.5 Passing Arguments to Event Listeners 6.2.6 Removing Event Listeners 6.2.7 Defining Event Handlers and Event Listeners via a Helper Function 6.2.8 Accessing Information of an Event 6.3 The Different Types of Events 6.3.1 Events when Interacting with the Mouse 6.3.2 Events when Interacting with the Keyboard and with Text Fields 6.3.3 Events when Working with Forms 6.3.4 Events when Focusing Elements 6.3.5 General Events of the User Interface 6.3.6 Events on Mobile Devices 6.4 Understanding and Influencing the Flow of Events 6.4.1 The Event Phases 6.4.2 Interrupting the Event Flow 6.4.3 Preventing Default Actions of Events 6.5 Programmatically Triggering Events 6.5.1 Triggering Simple Events 6.5.2 Triggering Events with Passed Arguments 6.5.3 Triggering Default Events 6.6 Summary 7 Working with Forms 7.1 Accessing Forms and Form Fields 7.1.1 Accessing Forms 7.1.2 Accessing Form Elements 7.1.3 Reading the Value of Text Fields and Password Fields 7.1.4 Reading the Value of Checkboxes 7.1.5 Reading the Value of Radio Buttons 7.1.6 Reading the Value of Selection Lists 7.1.7 Reading the Values of Multiple Selection Lists 7.1.8 Populating Selection Lists with Values Using JavaScript 7.2 Programmatically Submitting and Resetting Forms 7.3 Validating Form Inputs 7.4 Summary 8 Controlling Browsers and Reading Browser Information 8.1 The Browser Object Model 8.2 Accessing Window Information 8.2.1 Determining the Size and Position of a Browser Window 8.2.2 Changing the Size and Position of a Browser Window 8.2.3 Accessing Display Information of the Browser Bars 8.2.4 Determining General Properties 8.2.5 Opening New Browser Windows 8.2.6 Closing the Browser Window 8.2.7 Opening Dialogs 8.2.8 Executing Functions in a Time-Controlled Manner 8.3 Accessing Navigation Information of a Currently Open Web Page 8.3.1 Accessing the Individual Components of the URL 8.3.2 Accessing Query String Parameters 8.3.3 Loading a New Web Page 8.4 Viewing and Modifying the Browsing History 8.4.1 Navigating in the Browsing History 8.4.2 Browsing History for Single-Page Applications 8.4.3 Adding Entries to the Browsing History 8.4.4 Responding to Changes in the Browsing History 8.4.5 Replacing the Current Entry in the Browsing History 8.5 Recognizing Browsers and Determining Browser Features 8.6 Accessing Screen Information 8.7 Summary 9 Dynamically Reloading Contents of a Web Page 9.1 The Principle of Ajax 9.1.1 Synchronous Communication 9.1.2 Asynchronous Communication 9.1.3 Typical Use Cases for Ajax 9.1.4 Data Formats Used 9.2 The XML Format 9.2.1 The Structure of XML 9.2.2 XML and the DOM API 9.2.3 Converting Strings to XML Objects 9.2.4 Converting XML Objects to Strings 9.3 The JSON Format 9.3.1 The Structure of JSON 9.3.2 Difference between JSON and JavaScript Objects 9.3.3 Converting Objects to JSON Format 9.3.4 Converting Objects from JSON Format 9.4 Making Requests via Ajax 9.4.1 The XMLHttpRequest Object 9.4.2 Loading HTML Data via Ajax 9.4.3 Loading XML Data via Ajax 9.4.4 Loading JSON Data via Ajax 9.4.5 Sending Data to the Server via Ajax 9.4.6 Submitting Dorms via Ajax 9.4.7 Loading Data from Other Domains 9.4.8 The Newer Alternative to XMLHttpRequest: The Fetch API 9.5 Summary 10 Simplifying Tasks with jQuery 10.1 Introduction 10.1.1 Embedding jQuery 10.1.2 Embedding jQuery via a Content Delivery Network 10.1.3 Using jQuery 10.1.4 Simplifying Tasks with jQuery 10.2 Working with the DOM 10.2.1 Selecting Elements 10.2.2 Accessing and Modifying Content 10.2.3 Filtering Selected Elements 10.2.4 Accessing Attributes 10.2.5 Accessing CSS Properties 10.2.6 Navigating between Elements 10.2.7 Using Effects and Animations 10.3 Responding to Events 10.3.1 Registering Event Listeners 10.3.2 Responding to General Events 10.3.3 Responding to Mouse Events 10.3.4 Responding to Keyboard Events 10.3.5 Responding to Form Events 10.3.6 Accessing Information from Events 10.4 Creating Ajax Requests 10.4.1 Creating Ajax Requests 10.4.2 Responding to Events 10.4.3 Loading HTML Data via Ajax 10.4.4 Loading XML Data via Ajax 10.4.5 Loading JSON Data via Ajax 10.5 Summary 11 Dynamically Creating Images and Graphics 11.1 Drawing Images 11.1.1 The Drawing Area 11.1.2 The Rendering Context 11.1.3 Drawing Rectangles 11.1.4 Using Paths 11.1.5 Drawing Texts 11.1.6 Drawing Gradients 11.1.7 Saving and Restoring the Canvas State 11.1.8 Using Transformations 11.1.9 Creating Animations 11.2 Integrating Vector Graphics 11.2.1 The SVG Format 11.2.2 Integrating SVG in HTML 11.2.3 Changing the Appearance of SVG Elements with CSS 11.2.4 Manipulating the Behavior of SVG Elements via JavaScript 11.3 Summary 12 Using Modern Web APIs 12.1 Communicating via JavaScript 12.1.1 Unidirectional Communication with the Server 12.1.2 Bidirectional Communication with a Server 12.1.3 Outgoing Communication from the Server 12.2 Recognizing Users 12.2.1 Using Cookies 12.2.2 Creating Cookies 12.2.3 Reading Cookies 12.2.4 Example: Shopping Cart Based on Cookies 12.2.5 Disadvantages of Cookies 12.3 Using the Browser Storage 12.3.1 Storing Values in the Browser Storage 12.3.2 Reading Values from the Browser Storage 12.3.3 Updating Values in the Browser Storage 12.3.4 Deleting Values from the Browser Storage 12.3.5 Responding to Changes in the Browser Storage 12.3.6 The Different Types of Browser Storage 12.3.7 Example: Shopping Cart Based on the Browser Storage 12.4 Using the Browser Database 12.4.1 Opening a Database 12.4.2 Creating a Database 12.4.3 Creating an Object Store 12.4.4 Adding Objects to an Object Store 12.4.5 Reading Objects from an Object Store 12.4.6 Deleting Objects from an Object Store 12.4.7 Updating Objects in an Object Store 12.4.8 Using a Cursor 12.5 Accessing the File System 12.5.1 Selecting Files via File Dialog 12.5.2 Selecting Files via Drag and Drop 12.5.3 Reading Files 12.5.4 Monitoring the Reading Progress 12.6 Moving Components of a Web Page 12.6.1 Events of a Drag-and-Drop Operation 12.6.2 Defining Movable Elements 12.6.3 Moving Elements 12.7 Parallelizing Tasks 12.7.1 The Principle of Web Workers 12.7.2 Use Web Workers 12.8 Determining the Location of Users 12.8.1 Accessing Location Information 12.8.2 Continuously Accessing Location Information 12.8.3 Showing the Position on a Map 12.8.4 Showing Directions 12.9 Reading the Battery Level of an End Device 12.9.1 Accessing Battery Information 12.9.2 Responding to Events 12.10 Outputting Speech and Recognizing Speech 12.10.1 Outputting Speech 12.10.2 Recognizing Speech 12.11 Creating Animations 12.11.1 Using the API 12.11.2 Controlling an Animation 12.12 Working with the Command Line 12.12.1 Selecting and Inspecting DOM Elements 12.12.2 Events Analysis 12.12.3 Debugging, Monitoring, and Profiling 12.13 Developing Multilingual Applications 12.13.1 Explanation of Terms 12.13.2 The Internationalization API 12.13.3 Comparing Character String Expressions 12.13.4 Formatting Dates and Times 12.13.5 Formatting Numeric Values 12.14 Overview of Various Web APIs 12.15 Summary 13 Object-Oriented Programming 13.1 The Principles of Object-Oriented Programming 13.1.1 Classes, Object Instances, and Prototypes 13.1.2 Principle 1: Define Abstract Behavior 13.1.3 Principle 2: Encapsulate Condition and Behavior 13.1.4 Principle 3: Inherit Condition and Behavior 13.1.5 Principle 4: Accept Different Types 13.1.6 JavaScript and Object Orientation 13.2 Prototypical Object Orientation 13.2.1 The Concept of Prototypes 13.2.2 Deriving from Objects 13.2.3 Inheriting Methods and Properties 13.2.4 Defining Methods and Properties in the Inheriting Object 13.2.5 Overwriting Methods 13.2.6 The Prototype Chain 13.2.7 Calling Methods of the Prototype 13.2.8 Prototypical Object Orientation and the Principles of Object Orientation 13.3 Pseudoclassical Object Orientation 13.3.1 Defining Constructor Functions 13.3.2 Creating Object Instances 13.3.3 Defining Methods 13.3.4 Deriving from Objects 13.3.5 Calling the Constructor of the "Superclass" 13.3.6 Overwriting Methods 13.3.7 Calling Methods of the "Superclass" 13.3.8 Pseudoclassical Object Orientation and the Principles of Object Orientation 13.4 Object Orientation with Class Syntax 13.4.1 Defining Classes 13.4.2 Creating Object Instances 13.4.3 Defining Getters and Setters 13.4.4 Defining Private Properties and Private Methods 13.4.5 Deriving from "Classes" 13.4.6 Overwriting Methods 13.4.7 Calling Methods of the "Superclass" 13.4.8 Defining Static Methods 13.4.9 Defining Static Properties 13.4.10 Class Syntax and the Principles of Object Orientation 13.5 Summary 14 Functional Programming 14.1 Principles of Functional Programming 14.2 Imperative Programming and Functional Programming 14.2.1 Iterating with the forEach() Method 14.2.2 Mapping Values with the map() Method 14.2.3 Filtering Values with the filter() Method 14.2.4 Reducing Multiple Values to One Value with the reduce() Method 14.2.5 Combination of the Different Methods 14.3 Summary 15 Correctly Structuring the Source Code 15.1 Avoiding Name Conflicts 15.2 Defining and Using Modules 15.2.1 The Module Design Pattern 15.2.2 The Revealing Module Design Pattern 15.2.3 AMD 15.2.4 CommonJS 15.2.5 Native Modules 15.3 Summary 16 Using Asynchronous Programming and Other Advanced Features 16.1 Understanding and Using Asynchronous Programming 16.1.1 Using the Callback Design Pattern 16.1.2 Using Promises 16.1.3 Using Async Functions 16.2 Encapsulating Iteration over Data Structures 16.2.1 The Principle of Iterators 16.2.2 Using Iterators 16.2.3 Creating Your Own Iterator 16.2.4 Creating an Iterable Object 16.2.5 Iterating over Iterable Objects 16.3 Pausing and Resuming Functions 16.3.1 Creating a Generator Function 16.3.2 Creating a Generator 16.3.3 Iterating over Generators 16.3.4 Creating Infinite Generators 16.3.5 Controlling Generators with Parameters 16.4 Intercepting Access to Objects 16.4.1 The Principle of Proxies 16.4.2 Creating Proxies 16.4.3 Defining Handlers for Proxies 16.5 Summary 17 Creating Server-Based Applications with Node.js 17.1 Introduction to Node.js 17.1.1 The Architecture of Node.js 17.1.2 Installing Node.js 17.1.3 A Simple Application 17.2 Managing Node.js Packages 17.2.1 Installing the Node.js Package Manager 17.2.2 Installing Packages 17.2.3 Creating Your Own Packages 17.3 Processing and Triggering Events 17.3.1 Triggering and Intercepting an Event 17.3.2 Triggering an Event Multiple Times 17.3.3 Intercepting an Event Exactly Once 17.3.4 Intercepting an Event Multiple Times 17.4 Accessing the File System 17.4.1 Reading Files 17.4.2 Writing Files 17.4.3 Reading File Information 17.4.4 Deleting Files 17.4.5 Working with Directories 17.5 Creating a Web Server 17.5.1 Starting a Web Server 17.5.2 Making Files Available via Web Server 17.5.3 Creating a Client for a Web Server 17.5.4 Defining Routes 17.5.5 Using the Express.js Web Framework 17.6 Accessing Databases 17.6.1 MongoDB Installation 17.6.2 Installing a MongoDB Driver for Node.js 17.6.3 Establishing a Connection to the Database 17.6.4 Creating a Collection 17.6.5 Saving Objects 17.6.6 Reading Objects 17.6.7 Updating Objects 17.6.8 Deleting Objects 17.7 Working with Streams 17.7.1 Introduction and Types of Streams 17.7.2 Stream Use Cases 17.7.3 Reading Data with Streams 17.7.4 Writing Data with Streams 17.7.5 Combining Streams Using Piping 17.7.6 Error Handling during Piping 17.8 Summary 18 Creating Mobile Applications with JavaScript 18.1 The Different Types of Mobile Applications 18.1.1 Native Applications 18.1.2 Mobile Web Applications 18.1.3 Hybrid Applications 18.1.4 Comparison of the Different Approaches 18.2 Creating Mobile Applications with React Native 18.2.1 The Principle of React Native 18.2.2 Installation and Project Initialization 18.2.3 Starting the Application 18.2.4 The Basic Structure of a React Native Application 18.2.5 Using UI Components 18.2.6 Communication with the Server 18.2.7 Building and Publishing Applications 18.3 Summary 19 Desktop Applications with JavaScript 19.1 NW.js 19.1.1 Installing and Creating an Application 19.1.2 Starting the Application 19.1.3 Packaging of the Application 19.1.4 More Sample Applications 19.2 Electron 19.2.1 Installing and Creating an Application 19.2.2 Starting the Application 19.2.3 Packaging 19.2.4 More Sample Applications 19.3 Summary 20 Controlling Microcontrollers with JavaScript 20.1 Espruino 20.1.1 Technical Information 20.1.2 Connection and Installation 20.1.3 First Example 20.1.4 Controlling LEDs 20.1.5 More Modules 20.1.6 Reading Sensors 20.2 Tessel 20.2.1 Technical Information 20.2.2 Connection and Installation 20.2.3 Controlling LEDs 20.2.4 Programming the Push Buttons 20.2.5 Extending the Tessel with Modules 20.3 BeagleBone Black 20.3.1 Technical Information 20.3.2 Connection and Installation 20.3.3 Controlling LEDs 20.4 Arduino 20.4.1 The Firmata Protocol 20.4.2 Connection and Installation 20.4.3 The Johnny Five Node.js Module 20.5 Cylon.js 20.5.1 Controlling the BeagleBone Black with Cylon.js 20.5.2 Controlling the Tessel Board with Cylon.js 20.5.3 Controlling an Arduino with Cylon.js 20.6 Summary 21 Establishing a Professional Development Process 21.1 Automating Tasks 21.1.1 Automating Tasks with Grunt 21.1.2 Automating Tasks with Gulp 21.2 Automated Testing of Source Code 21.2.1 The Principle of Automated Tests 21.2.2 The Principle of Test-Driven Development 21.2.3 Automated Testing of Source Code with QUnit 21.2.4 Automated Testing of Source Code with mocha 21.3 Source Code Version Management 21.3.1 Introduction to Version Management 21.3.2 Installing and Configuring the Git Version Control System 21.3.3 Creating a New Local Repository 21.3.4 Cloning an Existing Repository 21.3.5 Transferring Changes to the Staging Area 21.3.6 Transferring Changes to the Local Repository 21.3.7 The Different States in Git 21.3.8 Transfering Changes to the Remote Repository 21.3.9 Transferring Changes from the Remote Repository 21.3.10 Working in a New Branch 21.3.11 Adopting Changes from a Branch 21.3.12 Overview of the Most Important Commands and Terms 21.4 Summary A The Author Index Service Pages Legal Notes
Donate to keep this site alive
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.