100% found this document useful (2 votes)
58 views

Get Begin to Code with JavaScript 1st Edition Miles PDF ebook with Full Chapters Now

Code

Uploaded by

mithamiaracx
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (2 votes)
58 views

Get Begin to Code with JavaScript 1st Edition Miles PDF ebook with Full Chapters Now

Code

Uploaded by

mithamiaracx
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 46

Download the Full Version of textbook for Fast Typing at textbookfull.

com

Begin to Code with JavaScript 1st Edition Miles

https://textbookfull.com/product/begin-to-code-with-
javascript-1st-edition-miles/

OR CLICK BUTTON

DOWNLOAD NOW

Download More textbook Instantly Today - Get Yours Now at textbookfull.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Begin to Code with Python Rob Miles

https://textbookfull.com/product/begin-to-code-with-python-rob-miles/

textboxfull.com

Source Code Analytics With Roslyn and JavaScript Data


Visualization Mukherjee

https://textbookfull.com/product/source-code-analytics-with-roslyn-
and-javascript-data-visualization-mukherjee/

textboxfull.com

Reactive Programming with RxJS 5 Untangle your


asynchronous Javascript code 1st Edition Sergi Mansilla

https://textbookfull.com/product/reactive-programming-with-
rxjs-5-untangle-your-asynchronous-javascript-code-1st-edition-sergi-
mansilla/
textboxfull.com

Refactoring JavaScript turning bad code into good code


First Edition Burchard

https://textbookfull.com/product/refactoring-javascript-turning-bad-
code-into-good-code-first-edition-burchard/

textboxfull.com
MASTERING JAVASCRIPT DESIGN PATTERNS create scalable and
reliable applications with advanced Javascript design
patterns using reliable code 3rd Edition Tomas Corral
Cosas
https://textbookfull.com/product/mastering-javascript-design-patterns-
create-scalable-and-reliable-applications-with-advanced-javascript-
design-patterns-using-reliable-code-3rd-edition-tomas-corral-cosas/
textboxfull.com

Models to Code: With No Mysterious Gaps 1st Edition Leon


Starr

https://textbookfull.com/product/models-to-code-with-no-mysterious-
gaps-1st-edition-leon-starr/

textboxfull.com

Beginning Functional JavaScript. Functional Programming


with JavaScript using EcmaScript 6 1st Edition Anto
Aravinth
https://textbookfull.com/product/beginning-functional-javascript-
functional-programming-with-javascript-using-ecmascript-6-1st-edition-
anto-aravinth/
textboxfull.com

Simplifying JavaScript Writing Modern JavaScript with ES5


ES6 and Beyond 1st Edition Joe Morgan

https://textbookfull.com/product/simplifying-javascript-writing-
modern-javascript-with-es5-es6-and-beyond-1st-edition-joe-morgan/

textboxfull.com

Beginning Functional JavaScript: Functional Programming


with JavaScript Using EcmaScript 6 1st Edition Anto
Aravinth
https://textbookfull.com/product/beginning-functional-javascript-
functional-programming-with-javascript-using-ecmascript-6-1st-edition-
anto-aravinth-2/
textboxfull.com
Begin to Code with JavaScript

Rob Miles
BEGIN TO CODE WITH JAVASCRIPT

Published with the authorization of Microsoft Corporation by:

Pearson Education, Inc.

Copyright © 2022 by Pearson Education, Inc.

All rights reserved. This publication is protected by copyright, and permission


must be obtained from the publisher prior to any prohibited reproduction,
storage in a retrieval system, or transmission in any form or by any means,
electronic, mechanical, photocopying, recording, or likewise. For information
regarding permissions, request forms, and the appropriate contacts within the
Pearson Education Global Rights & Permissions Department, please visit
www.pearson.com/permissions

No patent liability is assumed with respect to the use of the information contained
herein. Although every precaution has been taken in the preparation of this book,
the publisher and author assume no responsibility for errors or omissions. Nor is
any liability assumed for damages resulting from the use of the information
contained herein.

ISBN-13: 978-0-13-687072-2

ISBN-10: 0-13-687072-4

Library of Congress Control Number: 2021941656

ScoutAutomatedPrintCode

TRADEMARKS

Microsoft and the trademarks listed at http://www.microsoft.com on the


“Trademarks” webpage are trademarks of the Microsoft group of companies. All
other marks are property of their respective owners.
WARNING AND DISCLAIMER

Every effort has been made to make this book as complete and as accurate as
possible, but no warranty or fitness is implied. The information provided is on an
“as is” basis. The author, the publisher, and Microsoft Corporation shall have
neither liability nor responsibility to any person or entity with respect to any loss
or damages arising from the information contained in this book or from the use
of the programs accompanying it.

SPECIAL SALES

For information about buying this title in bulk quantities, or for special sales
opportunities (which may include electronic versions; custom cover designs; and
content particular to your business, training goals, marketing focus, or branding
interests), please contact our corporate sales department at
[email protected] or (800) 382-3419.

For government sales inquiries, please contact


[email protected].

For questions about sales outside the U.S., please contact


[email protected].

Editor-in-Chief

Brett Bartow

Executive Editor

Loretta Yates

Development Editor

Rick Kughen

Sponsoring Editor
Charvi Arora

Managing Editor

Sandra Schroeder

Senior Project Editor

Tracey Croom

Copy Editor

Rick Kughen

Indexer

James Minken

Proofreader

Scout Festa

Technical Editor

John E. Ray

Editorial Assistant

Cindy Teeters

Cover Designer

Twist Creative, Seattle

Compositor

Danielle Foster
Graphics

Danielle Foster
To Imogen
About the author

Rob Miles spent more than 30 years teaching programming at the


University of Hull in the United Kingdom. He now runs a company
promoting community uptake of computer technology. He’s a Microsoft
MVP with a passion for programming and creating new things. If he had
any spare time, he’d spend it writing even more code. He loves building
devices and then switching them on to see what they do. He reckons that
programming is the most creative thing you can learn how to do. He
claims to know a lot of really good jokes, but nobody has ever heard him
tell one. If you want an insight into the Wacky World™ of Rob Miles, you
can read his blog at www.robmiles.com and follow him on Twitter via
@RobMiles.
Contents at a glance

Part 1: The world of JavaScript

Chapter 1 Running JavaScript

Chapter 2 Hypertext Markup Language (HTML)

Chapter 3 Cascading Style Sheets (CSS)

Part 2: Coding with JavaScript

Chapter 4 Working with data

Chapter 5 Making decisions in programs

Chapter 6 Repeating actions in programs

Chapter 7 Creating functions

Chapter 8 Storing data

Chapter 9 Objects

Part 3: Useful JavaScript

Chapter 10 Advanced JavaScript

Chapter 11 Creating applications

Chapter 12 Creating games


Contents

Introduction

Part 1: The world of JavaScript

1 Running JavaScript

What is JavaScript?

JavaScript origins

JavaScript and the web browser

Our first brush with JavaScript

Tools

Getting Git

Getting Visual Studio Code

Getting the sample files

Working on files with Visual Studio Code

What you have learned

2 Hypertext Markup Language (HTML)

HTML and the World Wide Web


Fetching web pages

What is HTML?

Display symbols

Lay out text in paragraphs

Create headings

Use preformatted text

Add comments to documents

Add images to web pages

The HTML document

Linking HTML documents

Making active web pages

Using a button

Reading input from a user

Display text output

Egg timer

Adding sound to the egg timer

Controlling audio playback

An image display program


What you have learned

3 Cascading Style Sheets (CSS)

Putting on the style

Splashing some color

Work with fonts

Text alignment

Make a ticking clock

Create a ticking clock

Margins around text

Creating style classes

Formatting parts of a document using <div> and <span>

Cascading styles

Color highlighting using selectors

What you have learned

Part 2: Coding with JavaScript

4 Working with data

Computers as data processors


Programs as data processors

JavaScript as a data processor

Process data with expressions

Data and information

Variables in programs

JavaScript identifiers

Performing calculations

Whole numbers and real numbers

Real numbers and floating-point numbers

Creating random dice

Working with text

JavaScript string delimiters

Escape sequences in strings

Working with strings and numbers

Converting strings into numbers

Make an adding machine

Making applications

Calculating a pizza order


Converting between Fahrenheit and centigrade

Adding comments

Global and local variables

Global variables

What you have learned

5 Making decisions in programs

Boolean thinking

Boolean values in JavaScript

Boolean expressions

Logical operators

The if construction

Adding an else part

Use decisions to make an application

Build the user interface

Add the code

Using the switch construction

What you have learned


6 Repeating actions in programs

App development

Adding data attributes to HTML elements

Using an unordered list as a container

The JavaScript for loop

Work through collections using for-of

Building web pages from code

Deleting elements from a document

What you have learned

7 Creating functions

What makes a function?

Give information to functions

Arguments and parameters

Multiple parameters in a function

Using references as function arguments

Arrays of arguments

Returning values from function calls


Add error handling to an application

Local variables in JavaScript functions

What you have learned

8 Storing data

Collections of data

Ice Cream Sales

Creating an array

Processing data in an array

Build a user interface

Arrays as lookup tables

Creating fixed with layouts

What you have learned

9 Objects

Make a tiny contacts app

Prototype HTML

Prototype style sheet

Prototype JavaScript
Storing contact details

Finding contacts

Displaying contacts

Saving a contact

Finding a contact

Use an object to store contact details

Use an object in the Tiny Contacts program

Store data in JavaScript local storage

Use JSON to encode object data

Use property accessors

Use a data schema

Build HTML from a schema

Build a data object from a schema

Improving the user interface

Add “Super Search” to Tiny Contacts

What you have learned

Part 3: Useful JavaScript


10 Advanced JavaScript

Manage errors with exceptions

Catching exceptions

Class design

Fashion Shop application

Object-oriented design

Store data in a class hierarchy

Add a method to give an object a behavior

Overriding methods in subclasses

Static class members

Data storage

Build a user interface

Exploring the Fashion Shop application

What you have learned

11 Creating applications

Data analysis

Fashion Shop stock list


Fashion Shop data analysis

Work with array methods

Read the weather

Fetch data from a server

Node.js

Create a web server with Node.js

Node package manager

Deploying a Node.js server

What you have learned

12 Creating games

Use the HTML Canvas

Canvas coordinates

Computer art

Draw images on a canvas

Animate images

Control gameplay

Window events
Control object position with a keyboard

Use keydown and keyup events

Create game objects

Game sprites

The game object

Starting the game

Add a cheese sprite

Add a Cracker sprite

Add lots of crackers

Catch the crackers

Add sound

Adding scores

Add a killer tomato

Create timed sprites

Complete the game

Add a start screen

Start the game running

What you have learned


Index
Introduction

Programming is the most creative thing you can learn how to do. Why? If
you learn to paint, you can create pictures. If you learn to play the violin,
you can make music, but if you learn to program, you can create entirely
new experiences (and you can make pictures and music, too, if you want).
Once you’ve started on the programming path, there’s no limit to where
you can go. There are always new devices, technologies, and
marketplaces where you can use your programming skills.

Think of this book as your first step on a journey to programming


enlightenment. The best journeys are undertaken with a destination in
mind, and the destination of this journey is “usefulness.” By the end of
this book, you will have the skills and knowledge to write useful
programs and make them available to anyone in the world.

But first, a word of warning: I would not say that learning to write
programs is easy. This is for two reasons:

If I tell you that it’s easy, and you still can’t do it, you might feel bad about
this (and rather cross with me).

If I tell you it’s easy and you manage to do it, you might think that it isn’t
worth doing.

Learning to program is not easy. It’s a kind of difficult that you might not
have seen before. Programming is all about detail and sequencing. You
must learn how the computer does things and how to express what you
want it to do.

Imagine that you were lucky enough to be able to afford your own
personal chef. At the start, you would have to explain things like, “If it is
sunny outside, I like orange juice and a grapefruit for breakfast, but if it is
raining, I’d like a bowl of porridge and a big mug of coffee.” Occasionally,
your chef would make mistakes. Perhaps you would get a black coffee
rather than the latte that you wanted. However, over time, you would add
more detail to your instructions until your chef knew exactly what to do.

A computer is like a chef who doesn’t even know how to cook. Rather
than saying “make me a coffee,” you would have to say, “Take the brown
powder from the coffee bag and add it to hot water.” Then you would
have to explain how to make hot water and how you must be careful with
the kettle and so on. This is hard work.

It turns out that the key to success as a programmer is much the same as
for many other endeavors. To become a world-renowned violin player,
you will have to practice a lot. The same is true for programming. You
must spend a lot of time working on your programs to acquire code-
writing skills. However, the good news is that just as a violin player really
enjoys making the instrument sing, making a computer do exactly what
you want turns out to be a very rewarding experience. It gets even more
enjoyable when you see other people using programs that you’ve written
and finding them useful and fun to use.

How this book fits together

I’ve organized this book in three parts. Each part builds on the previous
one with the aim of turning you into a successful programmer. We start
off discovering the environment in which JavaScript programs run. Then
we learn the fundamentals of programming and we finish by making
some properly useful (and fun) programs.

Part 1: The world of JavaScript


The first part gets you started. You’ll discover the environment in which
JavaScript programs run and learn how to create web pages containing
JavaScript programs.

Part 2: Coding with JavaScript

Part 2 describes the features of the JavaScript that you use to create
programs that work on data. You will pick up some fundamental
programming skills that apply to a wide range of other languages and
that get you thinking about what it is that programs actually do. You’ll
find out how to break large programs into smaller elements and how you
can create custom data types that reflect the specific problem being
solved.

Part 3: Useful JavaScript

Now that you can make JavaScript programs, it’s time to have some fun
with them. You’ll discover how to create good-looking applications, learn
how to make programs that are secure and reliable, and finish off with a
bit of game development.

How you will learn

In each chapter, I will tell you a bit more about programming. I’ll show
you how to do something, and then I’ll invite you to make something of
your own by using what you’ve learned. You’ll never be more than a page
or so away from doing something or making something unique and
personal. After that, it’s up to you to make something amazing!

You can read the book straight through if you like, but you’ll learn much
more if you slow down and work with the practical parts along the way.
Like learning to ride a bicycle, you’ll learn by doing. You must put in the
time and practice to learn how to do it. But this book will give you the
knowledge and confidence to try your hand at programming, and it will
also be around to help you if your programming doesn’t turn out as you
expected. Here are some elements in the book that will help you learn by
doing:

MAKE SOMETHING HAPPEN

Yes, the best way to learn things is by doing, so you’ll find “Make
Something Happen” elements throughout the text. These elements offer
ways for you to practice your programming skills. Each starts with an
example and then introduces some steps you can try on your own.
Everything you create will run on Windows, macOS, or Linux.

CODE ANALYSIS

A great way to learn how to program is by looking at code written by


others and working out what it does (and sometimes why it doesn’t do
what it should). The book contains more than 150 sample programs for
you to look at. In this book’s “Code Analysis” challenges, you’ll use your
deductive skills to figure out the behavior of a program, fix bugs, and
suggest improvements.

WHAT COULD GO WRONG

If you don’t already know that programs can fail, you’ll learn this hard
lesson soon after you begin writing your first program. To help you deal
with this in advance, I’ve included “What Could Go Wrong” elements,
which anticipate problems you might have and provide solutions to those
problems. For example, when I introduce something new, I’ll sometimes
spend some time considering how it can fail and what you need to worry
about when you use the new feature.
PROGRAMMER’S POINTS

I’ve spent a lot of time teaching programming, but I’ve also written many
programs and sold a few to paying customers. I’ve learned some things
the hard way that I really wish I’d known at the start. The aim of
“Programmer’s Points” is to give you this information up front so that you
can start taking a professional view of software development as you learn
how to do it.

“Programmer’s Points” cover a wide range of issues, from programming,


to people, and to philosophy. I strongly advise you to read and absorb
these points carefully—they can save you a lot of time in the future!

What you will need

You’ll need a computer and some software to work with the programs in
this book. I’m afraid I can’t provide you with a computer, but in the first
chapter, you’ll find out how you can get started with nothing more than a
computer and a web browser. Later, you’ll discover how to use the Visual
Studio Code editor to create JavaScript programs.

Using a PC or laptop

You can use Windows, macOS, or Linux to create and run the programs in
the text. Your PC doesn’t have to be particularly powerful, but these are
the minimum specifications I’d recommend:

A 1 GHz or faster processor, preferably an Intel i5 or better.


At least 4 gigabytes (GB) of memory (RAM), but preferably 8 GB or
more.
256 GB hard drive space. (The JavaScript frameworks and Visual
Studio Code installations take about 1 GB of hard drive space.)
There are no specific requirements for the graphics display, although a
higher-resolution screen will enable you to see more when writing your
programs.

Using a mobile device

You can run JavaScript programs on a mobile phone or tablet by visiting


the web pages in which the programs are held. There are also some
applications that can be used to create and run JavaScript programs, but
my experience has been that a laptop or desktop computer is a better
place to work.

Using a Raspberry Pi

If you want to get started in the most inexpensive way possible, you can
use a Raspberry Pi running the Raspbian operating system. This has a
Chromium-compatible browser and is also capable of running Visual
Studio Code.

Downloads

In every chapter in this book, I’ll demonstrate and explain programs that
teach you how to begin to program—and you can then use that code to
create programs of your own. I’ve made a few video walkthroughs for
some crucial tasks. The book text will contain screenshots that you can
use, but these can go out of date. Follow the links to the walkthroughs to
get the latest steps to follow. You can download the book’s sample code
and video walkthroughs from the following page:

MicrosoftPressStore.com/BeginCodeJavaScript/downloads

Follow the instructions you’ll find in Chapter 1 to install the sample


programs and code. You’ll discover how to use GitHub to make your own
copy of the sample programs. You can then use GitHub to publish
JavaScript-enabled web pages for anyone in the world to view. You will
need to connect to the Internet and create a free GitHub account to do
this. You can browse the GitHub site and all the examples here:

www.begintocodewithjavascript.com

Video walkthroughs

You can also find the walkthroughs here:

https://bit.ly/3wEn6zX

Acknowledgments

Thanks to Mary for the cups of tea and Immy for the distraction.

Errata, updates, and book support

We’ve made every effort to ensure the accuracy of this book and its
companion content. You can access updates to this book—in the form of a
list of submitted errata and their related corrections—at

MicrosoftPressStore.com/BeginCodeJavaScript/errata

If you discover an error not already listed, please submit it to us at the


same page.

For additional book support and information, please visit

http://www.MicrosoftPressStore.com/Support

Please note that product support for Microsoft software and hardware is
not offered through the previous addresses. For help with Microsoft
Random documents with unrelated
content Scribd suggests to you:
THE FULL PROJECT GUTENBERG LICENSE
PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK

To protect the Project Gutenberg™ mission of promoting the free


distribution of electronic works, by using or distributing this work (or
any other work associated in any way with the phrase “Project
Gutenberg”), you agree to comply with all the terms of the Full
Project Gutenberg™ License available with this file or online at
www.gutenberg.org/license.

Section 1. General Terms of Use and


Redistributing Project Gutenberg™
electronic works
1.A. By reading or using any part of this Project Gutenberg™
electronic work, you indicate that you have read, understand, agree
to and accept all the terms of this license and intellectual property
(trademark/copyright) agreement. If you do not agree to abide by all
the terms of this agreement, you must cease using and return or
destroy all copies of Project Gutenberg™ electronic works in your
possession. If you paid a fee for obtaining a copy of or access to a
Project Gutenberg™ electronic work and you do not agree to be
bound by the terms of this agreement, you may obtain a refund
from the person or entity to whom you paid the fee as set forth in
paragraph 1.E.8.

1.B. “Project Gutenberg” is a registered trademark. It may only be


used on or associated in any way with an electronic work by people
who agree to be bound by the terms of this agreement. There are a
few things that you can do with most Project Gutenberg™ electronic
works even without complying with the full terms of this agreement.
See paragraph 1.C below. There are a lot of things you can do with
Project Gutenberg™ electronic works if you follow the terms of this
agreement and help preserve free future access to Project
Gutenberg™ electronic works. See paragraph 1.E below.
1.C. The Project Gutenberg Literary Archive Foundation (“the
Foundation” or PGLAF), owns a compilation copyright in the
collection of Project Gutenberg™ electronic works. Nearly all the
individual works in the collection are in the public domain in the
United States. If an individual work is unprotected by copyright law
in the United States and you are located in the United States, we do
not claim a right to prevent you from copying, distributing,
performing, displaying or creating derivative works based on the
work as long as all references to Project Gutenberg are removed. Of
course, we hope that you will support the Project Gutenberg™
mission of promoting free access to electronic works by freely
sharing Project Gutenberg™ works in compliance with the terms of
this agreement for keeping the Project Gutenberg™ name associated
with the work. You can easily comply with the terms of this
agreement by keeping this work in the same format with its attached
full Project Gutenberg™ License when you share it without charge
with others.

1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside the
United States, check the laws of your country in addition to the
terms of this agreement before downloading, copying, displaying,
performing, distributing or creating derivative works based on this
work or any other Project Gutenberg™ work. The Foundation makes
no representations concerning the copyright status of any work in
any country other than the United States.

1.E. Unless you have removed all references to Project Gutenberg:

1.E.1. The following sentence, with active links to, or other


immediate access to, the full Project Gutenberg™ License must
appear prominently whenever any copy of a Project Gutenberg™
work (any work on which the phrase “Project Gutenberg” appears,
or with which the phrase “Project Gutenberg” is associated) is
accessed, displayed, performed, viewed, copied or distributed:
This eBook is for the use of anyone anywhere in the United
States and most other parts of the world at no cost and with
almost no restrictions whatsoever. You may copy it, give it away
or re-use it under the terms of the Project Gutenberg License
included with this eBook or online at www.gutenberg.org. If you
are not located in the United States, you will have to check the
laws of the country where you are located before using this
eBook.

1.E.2. If an individual Project Gutenberg™ electronic work is derived


from texts not protected by U.S. copyright law (does not contain a
notice indicating that it is posted with permission of the copyright
holder), the work can be copied and distributed to anyone in the
United States without paying any fees or charges. If you are
redistributing or providing access to a work with the phrase “Project
Gutenberg” associated with or appearing on the work, you must
comply either with the requirements of paragraphs 1.E.1 through
1.E.7 or obtain permission for the use of the work and the Project
Gutenberg™ trademark as set forth in paragraphs 1.E.8 or 1.E.9.

1.E.3. If an individual Project Gutenberg™ electronic work is posted


with the permission of the copyright holder, your use and distribution
must comply with both paragraphs 1.E.1 through 1.E.7 and any
additional terms imposed by the copyright holder. Additional terms
will be linked to the Project Gutenberg™ License for all works posted
with the permission of the copyright holder found at the beginning
of this work.

1.E.4. Do not unlink or detach or remove the full Project


Gutenberg™ License terms from this work, or any files containing a
part of this work or any other work associated with Project
Gutenberg™.

1.E.5. Do not copy, display, perform, distribute or redistribute this


electronic work, or any part of this electronic work, without
prominently displaying the sentence set forth in paragraph 1.E.1
with active links or immediate access to the full terms of the Project
Gutenberg™ License.

1.E.6. You may convert to and distribute this work in any binary,
compressed, marked up, nonproprietary or proprietary form,
including any word processing or hypertext form. However, if you
provide access to or distribute copies of a Project Gutenberg™ work
in a format other than “Plain Vanilla ASCII” or other format used in
the official version posted on the official Project Gutenberg™ website
(www.gutenberg.org), you must, at no additional cost, fee or
expense to the user, provide a copy, a means of exporting a copy, or
a means of obtaining a copy upon request, of the work in its original
“Plain Vanilla ASCII” or other form. Any alternate format must
include the full Project Gutenberg™ License as specified in
paragraph 1.E.1.

1.E.7. Do not charge a fee for access to, viewing, displaying,


performing, copying or distributing any Project Gutenberg™ works
unless you comply with paragraph 1.E.8 or 1.E.9.

1.E.8. You may charge a reasonable fee for copies of or providing


access to or distributing Project Gutenberg™ electronic works
provided that:

• You pay a royalty fee of 20% of the gross profits you derive
from the use of Project Gutenberg™ works calculated using the
method you already use to calculate your applicable taxes. The
fee is owed to the owner of the Project Gutenberg™ trademark,
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information
about donations to the Project Gutenberg Literary Archive
Foundation.”

• You provide a full refund of any money paid by a user who


notifies you in writing (or by e-mail) within 30 days of receipt
that s/he does not agree to the terms of the full Project
Gutenberg™ License. You must require such a user to return or
destroy all copies of the works possessed in a physical medium
and discontinue all use of and all access to other copies of
Project Gutenberg™ works.

• You provide, in accordance with paragraph 1.F.3, a full refund of


any money paid for a work or a replacement copy, if a defect in
the electronic work is discovered and reported to you within 90
days of receipt of the work.

• You comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.

1.E.9. If you wish to charge a fee or distribute a Project Gutenberg™


electronic work or group of works on different terms than are set
forth in this agreement, you must obtain permission in writing from
the Project Gutenberg Literary Archive Foundation, the manager of
the Project Gutenberg™ trademark. Contact the Foundation as set
forth in Section 3 below.

1.F.

1.F.1. Project Gutenberg volunteers and employees expend


considerable effort to identify, do copyright research on, transcribe
and proofread works not protected by U.S. copyright law in creating
the Project Gutenberg™ collection. Despite these efforts, Project
Gutenberg™ electronic works, and the medium on which they may
be stored, may contain “Defects,” such as, but not limited to,
incomplete, inaccurate or corrupt data, transcription errors, a
copyright or other intellectual property infringement, a defective or
damaged disk or other medium, a computer virus, or computer
codes that damage or cannot be read by your equipment.

1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except for


the “Right of Replacement or Refund” described in paragraph 1.F.3,
the Project Gutenberg Literary Archive Foundation, the owner of the
Project Gutenberg™ trademark, and any other party distributing a
Project Gutenberg™ electronic work under this agreement, disclaim
all liability to you for damages, costs and expenses, including legal
fees. YOU AGREE THAT YOU HAVE NO REMEDIES FOR
NEGLIGENCE, STRICT LIABILITY, BREACH OF WARRANTY OR
BREACH OF CONTRACT EXCEPT THOSE PROVIDED IN PARAGRAPH
1.F.3. YOU AGREE THAT THE FOUNDATION, THE TRADEMARK
OWNER, AND ANY DISTRIBUTOR UNDER THIS AGREEMENT WILL
NOT BE LIABLE TO YOU FOR ACTUAL, DIRECT, INDIRECT,
CONSEQUENTIAL, PUNITIVE OR INCIDENTAL DAMAGES EVEN IF
YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH DAMAGE.

1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you


discover a defect in this electronic work within 90 days of receiving
it, you can receive a refund of the money (if any) you paid for it by
sending a written explanation to the person you received the work
from. If you received the work on a physical medium, you must
return the medium with your written explanation. The person or
entity that provided you with the defective work may elect to provide
a replacement copy in lieu of a refund. If you received the work
electronically, the person or entity providing it to you may choose to
give you a second opportunity to receive the work electronically in
lieu of a refund. If the second copy is also defective, you may
demand a refund in writing without further opportunities to fix the
problem.

1.F.4. Except for the limited right of replacement or refund set forth
in paragraph 1.F.3, this work is provided to you ‘AS-IS’, WITH NO
OTHER WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.

1.F.5. Some states do not allow disclaimers of certain implied


warranties or the exclusion or limitation of certain types of damages.
If any disclaimer or limitation set forth in this agreement violates the
law of the state applicable to this agreement, the agreement shall be
interpreted to make the maximum disclaimer or limitation permitted
by the applicable state law. The invalidity or unenforceability of any
provision of this agreement shall not void the remaining provisions.

1.F.6. INDEMNITY - You agree to indemnify and hold the Foundation,


the trademark owner, any agent or employee of the Foundation,
anyone providing copies of Project Gutenberg™ electronic works in
accordance with this agreement, and any volunteers associated with
the production, promotion and distribution of Project Gutenberg™
electronic works, harmless from all liability, costs and expenses,
including legal fees, that arise directly or indirectly from any of the
following which you do or cause to occur: (a) distribution of this or
any Project Gutenberg™ work, (b) alteration, modification, or
additions or deletions to any Project Gutenberg™ work, and (c) any
Defect you cause.

Section 2. Information about the Mission


of Project Gutenberg™
Project Gutenberg™ is synonymous with the free distribution of
electronic works in formats readable by the widest variety of
computers including obsolete, old, middle-aged and new computers.
It exists because of the efforts of hundreds of volunteers and
donations from people in all walks of life.

Volunteers and financial support to provide volunteers with the


assistance they need are critical to reaching Project Gutenberg™’s
goals and ensuring that the Project Gutenberg™ collection will
remain freely available for generations to come. In 2001, the Project
Gutenberg Literary Archive Foundation was created to provide a
secure and permanent future for Project Gutenberg™ and future
generations. To learn more about the Project Gutenberg Literary
Archive Foundation and how your efforts and donations can help,
see Sections 3 and 4 and the Foundation information page at
www.gutenberg.org.

Section 3. Information about the Project


Gutenberg Literary Archive Foundation
The Project Gutenberg Literary Archive Foundation is a non-profit
501(c)(3) educational corporation organized under the laws of the
state of Mississippi and granted tax exempt status by the Internal
Revenue Service. The Foundation’s EIN or federal tax identification
number is 64-6221541. Contributions to the Project Gutenberg
Literary Archive Foundation are tax deductible to the full extent
permitted by U.S. federal laws and your state’s laws.

The Foundation’s business office is located at 809 North 1500 West,


Salt Lake City, UT 84116, (801) 596-1887. Email contact links and up
to date contact information can be found at the Foundation’s website
and official page at www.gutenberg.org/contact

Section 4. Information about Donations to


the Project Gutenberg Literary Archive
Foundation
Project Gutenberg™ depends upon and cannot survive without
widespread public support and donations to carry out its mission of
increasing the number of public domain and licensed works that can
be freely distributed in machine-readable form accessible by the
widest array of equipment including outdated equipment. Many
small donations ($1 to $5,000) are particularly important to
maintaining tax exempt status with the IRS.

The Foundation is committed to complying with the laws regulating


charities and charitable donations in all 50 states of the United
States. Compliance requirements are not uniform and it takes a
considerable effort, much paperwork and many fees to meet and
keep up with these requirements. We do not solicit donations in
locations where we have not received written confirmation of
compliance. To SEND DONATIONS or determine the status of
compliance for any particular state visit www.gutenberg.org/donate.

While we cannot and do not solicit contributions from states where


we have not met the solicitation requirements, we know of no
prohibition against accepting unsolicited donations from donors in
such states who approach us with offers to donate.

International donations are gratefully accepted, but we cannot make


any statements concerning tax treatment of donations received from
outside the United States. U.S. laws alone swamp our small staff.

Please check the Project Gutenberg web pages for current donation
methods and addresses. Donations are accepted in a number of
other ways including checks, online payments and credit card
donations. To donate, please visit: www.gutenberg.org/donate.

Section 5. General Information About


Project Gutenberg™ electronic works
Professor Michael S. Hart was the originator of the Project
Gutenberg™ concept of a library of electronic works that could be
freely shared with anyone. For forty years, he produced and
distributed Project Gutenberg™ eBooks with only a loose network of
volunteer support.
Project Gutenberg™ eBooks are often created from several printed
editions, all of which are confirmed as not protected by copyright in
the U.S. unless a copyright notice is included. Thus, we do not
necessarily keep eBooks in compliance with any particular paper
edition.

Most people start at our website which has the main PG search
facility: www.gutenberg.org.

This website includes information about Project Gutenberg™,


including how to make donations to the Project Gutenberg Literary
Archive Foundation, how to help produce our new eBooks, and how
to subscribe to our email newsletter to hear about new eBooks.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

textbookfull.com

You might also like