Eloquent JavaScript A Modern Introduction to Programming

JavaScript lies at the heart of almost every modern web application, from social apps to the newest browser-based games. Though simple for beginners to pick up and play with, JavaScript is a flexible, complex language that you can use to build full-scale applications.Eloquent JavaScript, 2nd Edition...

Full description

Saved in:
Bibliographic Details
Main Author: Haverbeke, Marijn
Format: eBook
Language:English
Published: San Francisco No Starch Press, Incorporated 2014
No Starch Press
No Starch Press, Inc
Edition:2
Subjects:
ISBN:1593275846, 9781593275846
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Abstract JavaScript lies at the heart of almost every modern web application, from social apps to the newest browser-based games. Though simple for beginners to pick up and play with, JavaScript is a flexible, complex language that you can use to build full-scale applications.Eloquent JavaScript, 2nd Edition dives deep into the JavaScript language to show you how to write beautiful, effective code. Author Marijn Haverbeke immerses you in example code from the start, while exercises and full-chapter projects give you hands-on experience with writing your own programs. As you build projects such as an artificial life simulation, a simple programming language, and a paint program, you’ll learn:The essential elements of programming, including syntax, control, and dataHow to organize and clarify your code with object-oriented and functional programming techniquesHow to script the browser and make basic web applicationsHow to use the DOM effectively to interact with browsersHow to harness Node.js to build servers and utilitiesThis edition is thoroughly revised and modernized to reflect the current state of Java­Script and web browsers, with brand-new material, such as a chapter on code performance in Java­Script, and expanded coverage of recursion and closures. All source code is available online in an inter­active sandbox, where you can edit the code, run it, and see its output instantly.Isn’t it time you became fluent in the language of the Web?.
AbstractList This thoroughly revised edition reflects the current state of JavaScript and Web browsers, with new material, such as a chapter on code performance in JavaScript, and expanded coverage of recursion and closures. Haverbeke immerses readers in example code from the start, while exercises and full-chapter projects give you hands-on experience with writing their own programs. Readers will build projects such as an artificial life simulation, a simple programming language, and a paint program. In addition to learning essential elements of programming, including syntax, control, and data, they will learn how to: organize and clarify code with object-oriented and functional programming techniques; script the browser and make basic Web applications; use the DOM effectively to interact with browsers; and harness Node.js to build servers and utilities. --
JavaScript lies at the heart of almost every modern web application, from social apps to the newest browser-based games. Though simple for beginners to pick up and play with, JavaScript is a flexible, complex language that you can use to build full-scale applications.Eloquent JavaScript, 2nd Edition dives deep into the JavaScript language to show you how to write beautiful, effective code. Author Marijn Haverbeke immerses you in example code from the start, while exercises and full-chapter projects give you hands-on experience with writing your own programs. As you build projects such as an artificial life simulation, a simple programming language, and a paint program, you’ll learn:The essential elements of programming, including syntax, control, and dataHow to organize and clarify your code with object-oriented and functional programming techniquesHow to script the browser and make basic web applicationsHow to use the DOM effectively to interact with browsersHow to harness Node.js to build servers and utilitiesThis edition is thoroughly revised and modernized to reflect the current state of Java­Script and web browsers, with brand-new material, such as a chapter on code performance in Java­Script, and expanded coverage of recursion and closures. All source code is available online in an inter­active sandbox, where you can edit the code, run it, and see its output instantly.Isn’t it time you became fluent in the language of the Web?.
JavaScript lies at the heart of almost every modern web application, from social apps like Twitter to browser-based game frameworks like Phaser and Babylon. Though simple for beginners to pick up and play with, JavaScript is a flexible, complex language that you can use to build full-scale applications. This much anticipated and thoroughly revised third edition of Eloquent JavaScript dives deep into the JavaScript language to show you how to write beautiful, effective code. It has been updated to reflect the current state of Java¬Script and web browsers and includes brand-new material on features like class notation, arrow functions, iterators, async functions, template strings, and block scope. A host of new exercises have also been added to test your skills and keep you on track.
JavaScript lies at the heart of almost every modern web application, from social apps to the newest browser-based games. Though simple for beginners to pick up and play with, JavaScript is a flexible, complex language that you can use to build full-scale applications.Eloquent JavaScript, 2nd Edition dives deep into the JavaScript language to show you how to write beautiful, effective code. Author Marijn Haverbeke immerses you in example code from the start, while exercises and full-chapter projects give you hands-on experience with writing your own programs. As you build projects such as an artificial life simulation, a simple programming language, and a paint program, you'll learn:The essential elements of programming, including syntax, control, and dataHow to organize and clarify your code with object-oriented and functional programming techniquesHow to script the browser and make basic web applicationsHow to use the DOM effectively to interact with browsersHow to harness Node.js to build servers and utilitiesThis edition is thoroughly revised and modernized to reflect the current state of JavaScript and web browsers, with brand-new material, such as a chapter on code performance in Java­Script, and expanded coverage of recursion and closures. All source code is available online in an interactive sandbox, where you can edit the code, run it, and see its output instantly.Isn't it time you became fluent in the language of the Web?
Author Haverbeke, Marijn
Author_xml – sequence: 1
  fullname: Haverbeke, Marijn
BookMark eNo9kEtLAzEUhSM-sK1d-QdcKS4KySS5STaClvqi0IXFbcjMZHCYMKlJWuu_d6ajri4HvnvO4YzRSetbe4TGhCuaCQBCj_8ElwzO0EgqySTmIM7RNMY6xxQIA0roCF0unP_c2jZdvZqdeStCvUkX6LQyLtrp752g98fFev48W66eXub3y5kBogjMbJGVpSqlIryizGKWc0FywwEKECWGDAQtZMWNAG4xkUowQUoucGFUlUtJJ-h6MI5N7Vz0VdK5903M2F7ovIkYYyG6qh14N4BF19SGyge_sa0tt4VJtW91r5Ldp_7b1Xkw4Vuv1su67Bww47QzuB0MTGzsV_zwLkW9c_YQp5WQ_-P1YTcDuwn9NDHpA9ZHB-P04mFOFCWQUfoDgRhs-w
ContentType eBook
CorporateAuthor Open Textbook Library
CorporateAuthor_xml – name: Open Textbook Library
DBID -HA
DEWEY 005.13/3
DatabaseName Open Textbook Library
DatabaseTitleList



DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISBN 1593276613
9781593276614
Edition 2
2nd edition.
ExternalDocumentID bks00077614
OTLid0000453
9781593276614
EBC1931623
Genre Textbooks
Electronic books
GroupedDBID -HA
AABBV
AALIM
ABARN
ABIAV
ABQPQ
ACLGV
ACNAM
ADVEM
AERYV
AFOJC
AHWGJ
AJFER
AKHYG
ALMA_UNASSIGNED_HOLDINGS
AZZ
BBABE
BPBUR
CZZ
FEAQG
GDRSO
GEOUK
JJU
MYL
NK1
NK2
OHILO
OODEK
PQQKQ
38.
6XM
BFMIH
DRU
IVK
IWL
NM7
PLCCB
PQEST
PQUKI
WZT
ID FETCH-LOGICAL-a61916-ec2dd9d8915f34e04b571ba566c67d062673c8f5a765e01897471d570ca9fb883
ISBN 1593275846
9781593275846
IngestDate Fri Sep 23 12:24:49 EDT 2022
Fri Nov 14 12:07:28 EST 2025
Thu Jun 12 01:54:15 EDT 2025
Wed Nov 26 03:31:33 EST 2025
IsOpenAccess true
IsPeerReviewed false
IsScholarly false
LCCallNum QA76
LCCallNum_Ident QA76.73.J39 .H384 2015
Language English
LinkModel OpenURL
MergedId FETCHMERGED-LOGICAL-a61916-ec2dd9d8915f34e04b571ba566c67d062673c8f5a765e01897471d570ca9fb883
Notes Includes index.
OCLC 898480567
OpenAccessLink https://open.umn.edu/opentextbooks/textbooks/453
PQID EBC1931623
PageCount 478
ParticipantIDs skillsoft_books24x7_bks00077614
centerforopeneducation_opentextbooklibrary_OTLid0000453
askewsholts_vlebooks_9781593276614
proquest_ebookcentral_EBC1931623
PublicationCentury 2000
PublicationDate 2014
2014-07-12
[2014]
[2015]
♭2015
PublicationDateYYYYMMDD 2014-01-01
2014-07-12
2015-01-01
PublicationDate_xml – year: 2014
  text: 2014
PublicationDecade 2010
PublicationPlace San Francisco
PublicationPlace_xml – name: San Francisco
– name: San Francisco, CA
PublicationYear 2014
2015
Publisher No Starch Press, Incorporated
No Starch Press
No Starch Press, Inc
Publisher_xml – name: No Starch Press, Incorporated
– name: No Starch Press
– name: No Starch Press, Inc
SSID ssib036146313
ssj0001453212
Score 1.9322789
SecondaryResourceType open_educational_resource
Snippet JavaScript lies at the heart of almost every modern web application, from social apps to the newest browser-based games. Though simple for beginners to pick up...
JavaScript lies at the heart of almost every modern web application, from social apps like Twitter to browser-based game frameworks like Phaser and Babylon....
This thoroughly revised edition reflects the current state of JavaScript and Web browsers, with new material, such as a chapter on code performance in...
SourceID skillsoft
centerforopeneducation
askewsholts
proquest
SourceType Aggregation Database
Publisher
SubjectTerms Computer Science
JavaScript (Computer program language)
Programming Languages
SubjectTermsDisplay Electronic books.
JavaScript (Computer program language)
Subtitle A Modern Introduction to Programming
TableOfContents Passing Along Arguments -- JSON -- Filtering an Array -- Transforming with map -- Summarizing with reduce -- Composability -- The Cost -- Great-great-great-great-. . . -- Binding -- Summary -- Exercises -- Flattening -- Mother-Child Age Difference -- Historical Life Expectancy -- Every and Then Some -- Chapter 6: The Secret Life of Objects -- History -- Methods -- Prototypes -- Constructors -- Overriding Derived Properties -- Prototype Interference -- Prototype-less Objects -- Polymorphism -- Laying Out a Table -- Getters and Setters -- Inheritance -- The instanceof Operator -- Summary -- Exercises -- A Vector Type -- Another Cell -- Sequence Interface -- Chapter 7: Electronic Life -- Definition -- Representing Space -- A Critter's Programming Interface -- The World Object -- this and Its Scope -- Animating Life -- It Moves -- More Life-forms -- A More Lifelike Simulation -- Action Handlers -- Populating the New World -- Bringing the World to Life -- Exercises -- Artificial Stupidity -- Predators -- Chapter 8: Bugs and Error Handling -- Programmer Mistakes -- Strict Mode -- Testing -- Debugging -- Error Propagation -- Exceptions -- Cleaning Up After Exceptions -- Selective Catching -- Assertions -- Summary -- Exercises -- Retry -- The Locked Box -- Chapter 9: Regular Expressions -- Creating a Regular Expression -- Testing for Matches -- Matching a Set of Characters -- Repeating Parts of a Pattern -- Grouping Subexpressions -- Matches and Groups -- The Date Type -- Word and String Boundaries -- Choice Patterns -- The Mechanics of Matching -- Backtracking -- The replace Method -- Greed -- Dynamically Creating RegExp Objects -- The search Method -- The lastIndex Property -- Looping over Matches -- Parsing an INI File -- International Characters -- Summary -- Exercises -- Regexp Golf -- Quoting Style -- Numbers Again -- Chapter 10: Modules
Drawing a Pie Chart -- Text -- Images -- Transformation -- Storing and Clearing Transformations -- Back to the Game -- Choosing a Graphics Interface -- Summary -- Exercises -- Shapes -- The Pie Chart -- A Bouncing Ball -- Precomputed Mirroring -- Chapter 17: HTTP -- The Protocol -- Browsers and HTTP -- XMLHttpRequest -- Sending a Request -- Asynchronous Requests -- Fetching XML Data -- HTTP Sandboxing -- Abstracting Requests -- Promises -- Appreciating HTTP -- Security and HTTPS -- Summary -- Exercises -- Content Negotiation -- Waiting for Multiple Promises -- Chapter 18: Forms and Form Fields -- Fields -- Focus -- Disabled Fields -- The Form as a Whole -- Text Fields -- Checkboxes and Radio Buttons -- Select Fields -- File Fields -- Storing Data Client-Side -- Summary -- Exercises -- A JavaScript Workbench -- Autocompletion -- Conway's Game of Life -- Chapter 19: Project: A Paint Program -- Implementation -- Building the DOM -- The Foundation -- Tool Selection -- Color and Brush Size -- Saving -- Loading Image Files -- Finishing Up -- Exercises -- Rectangles -- Color Picker -- Flood Fill -- Part III: Beyond -- Chapter 20: Node.js -- Background -- Asynchronicity -- The node Command -- Modules -- Installing with NPM -- The Filesystem Module -- The HTTP Module -- Streams -- A Simple File Server -- Error Handling -- Summary -- Exercises -- Content Negotiation, Again -- Fixing a Leak -- Creating Directories -- A Public Space on the Web -- Chapter 21: Project: Skill-Sharing Website -- Design -- Long Polling -- HTTP Interface -- The Server -- Routing -- Serving Files -- Talks as Resources -- Long-Polling Support -- The Client -- HTML -- Starting up -- Displaying Talks -- Updating the Server -- Noticing Changes -- Exercises -- Disk Persistence -- Comment Field Resets -- Better Templates -- Unscriptables -- Chapter 22: JavaScript and Performance
Staged Compilation -- Graph Layout -- Defining a Graph -- A First Force-Directed Layout Function -- Profiling -- Function Inlining -- Going Back to Old-school Loops -- Avoiding Work -- Creating Less Garbage -- Garbage Collection -- Writing to Objects -- Dynamic Types -- Summary -- Exercises -- Pathfinding -- Timing -- Optimizing -- Exercise Hints -- Program Structure -- Looping a Triangle -- FizzBuzz -- Chess Board -- Functions -- Minimum -- Recursion -- Bean Counting -- Data Structures: Objects and Arrays -- The Sum of a Range -- Reversing an Array -- A List -- Deep Comparison -- Higher-Order Functions -- Mother-Child Age Difference -- Historical Life Expectancy -- Every and Then Some -- The Secret Life of Objects -- A Vector Type -- Another Cell -- Sequence Interface -- Project: Electronic Life -- Artificial Stupidity -- Predators -- Bugs and Error Handling -- Retry -- The Locked Box -- Regular Expressions -- Quoting Style -- Numbers Again -- Module -- Month Names -- A Return to Electronic Life -- Circular Dependencies -- Project: A Programming Language -- Arrarys -- Closure -- Comments -- Fixing Scope -- The Document Object Model -- Build a Table -- Elements by Tag Name -- Handling Events -- Censored Keyboard -- Mouse Trail -- Tabs -- Project: A Platform Game -- Game Over -- Pausing the Game -- Drawing on Canvas -- Shapes -- The Pie Chart -- A Bouncing Ball -- Precomputed Mirroring -- HTTP -- Content Negotiation -- Waiting for Multiple Promises -- Forms and Form Fields -- A JavaScript Workbench -- Autocompletion -- Conway's Game of Life -- Project: A Paint Program -- Rectangles -- Color Picker -- Flood Fill -- Node.js -- Content Negotiation, Again -- Fixing a Leak -- Creating Directories -- A Public Space on the Web -- Project: Skill-Sharing Website -- Disk Persistence -- Comment Field Resets -- Better Templates -- The Unscriptables
JavaScript and Performance
Why Modules Help -- Namespacing -- Reuse -- Decoupling -- Using Functions as NameSpaces -- Objects as Interfaces -- Detaching from the Global Scope -- Evaluating Data as Code -- The require Function -- Slow-Loading Modules -- Interface Design -- Predictability -- Composability -- Layered Interfaces -- Summary -- Exercises -- Month Names -- A Return to Electronic Life -- Circular Dependencies -- Chapter 11: Project: A Programming Language -- Parsing -- The Evaluator -- Special Forms -- The Environment -- Functions -- Compilation -- Cheating -- Exercises -- Arrays -- Closure -- Comments -- Fixing Scope -- Part II: Browser -- Chapter 12: JavaScript and the Browser -- Networks and the Internet -- The Web -- HTML -- HTML and JavaScript -- In the Sandbox -- Compatibility and the Browser Wars -- Chapter 13: The Document Object Model -- Document Structure -- Trees -- The Standard -- Moving Through the Tree -- Finding Elements -- Changing the Document -- Creating Nodes -- Attributes -- Layout -- Styling -- Cascading Styles -- Query Selectors -- Positioning and Animating -- Summary -- Exercises -- Build a Table -- Elements by Tag Name -- The Cat's Hat -- Chapter 14: Handling Events -- Event Handlers -- Events and DOM Nodes -- Event Objects -- Propagation -- Default Actions -- Key Events -- Mouse Clicks -- Mouse Motion -- Scroll Events -- Focus Events -- Load Event -- Script Execution Timeline -- Setting Timers -- Debouncing -- Summary -- Exercises -- Censored Keyboard -- Mouse Trail -- Tabs -- Chapter 15: Project: A Platform Game -- The Game -- The Technology -- Levels -- Reading a Level -- Actors -- Encapsulation as a Burden -- Drawing -- Motion and Collision -- Actors and Actions -- Tracking Keys -- Running the Game -- Exercises -- Game Over -- Pausing the Game -- Chapter 16: Drawing on Canvas -- SVG -- The Canvas Element -- Filling and Stroking -- Curves
Intro -- Brief Contents -- Contents in Detail -- Introduction -- On Programming -- Why Language Matters -- What Is JavaScript? -- Code, and What to Do with It -- Overview of This Book -- Typographic Conventions -- Part I: Language -- Chapter 1: Values, Types, and Operators -- Values -- Numbers -- Arithmetic -- Special Numbers -- Strings -- Unary Operators -- Boolean Values -- Comparisons -- Logical Operators -- Undefined Values -- Automatic Type Conversion -- Short-Circuiting of Logical Operators -- Summary -- Chapter 2: Program Structure -- Expressions and Statements -- Variables -- Keywords and Reserved Words -- The Environment -- Functions -- The console.log Function -- Return Values -- Prompt and Confirm -- Control Flow -- Conditional Execution -- while and do Loops -- Indenting Code -- for Loops -- Breaking Out of a Loop -- Updating Variables Succinctly -- Dispatching on a Value with switch -- Capitalization -- Comments -- Summary -- Exercises -- Looping a Triangle -- FizzBuzz -- Chess Board -- Chapter 3: Functions -- Defining a Function -- Parameters and Scopes -- Nested Scopes -- Functions as Values -- Declaration Notation -- The Call Stack -- Optional Arguments -- Closure -- Recursion -- Growing Functions -- Functions and Side Effects -- Summary -- Exercises -- Minimum -- Recursion -- Bean Counting -- Chapter 4: Data Structures: Objects and Arrays -- The Weresquirrel -- Data Sets -- Properties -- Methods -- Objects -- Mutability -- The Lycanthrope's Log -- Computing Correlation -- Objects as Maps -- The Final Analysis -- Further Arrayology -- Strings and Their Properties -- The arguments Object -- The Math Object -- The Global Object -- Summary -- Exercises -- The Sum of a Range -- Reversing an Array -- A List -- Deep Comparison -- Chapter 5: Higher-Order Functions -- Abstraction -- Abstracting Array Traversal -- Higher-Order Functions
Introduction -- Part 1: Language -- 1 Values, Types, and Operators -- 2 Program Structure -- 3 Functions -- 4 Data Structures: Object and Arrays -- 5 Higher-Order Functions -- 6 The Secret Life of Objects -- 7 Project: A Robot -- 8 Bugs and Errors -- 9 Regular Expressions -- 10 Modules -- 11 Asynchronous Programming -- 12 Project: A Programming Language -- Part 2: Browser -- 13 JavaScript and the Browser -- 14 The Document Object Model -- 15 Handling Events -- 16 Project: A Platform Game -- 17 Drawing on Canvas -- 18 HTTP and Forms -- 19 Project: A Pixel Art Editor -- Part 3: Node -- 20 Node.js -- 21 Project: Skill-Sharing Website -- Exercise Hints
Title Eloquent JavaScript
URI https://ebookcentral.proquest.com/lib/[SITE_ID]/detail.action?docID=1931623
https://www.vlebooks.com/vleweb/product/openreader?id=none&isbn=9781593276614
https://open.umn.edu/opentextbooks/textbooks/453
http://www.books24x7.com/marc.asp?bookid=77614
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV3da9swEL8lbWHLy7asZVk_FkbfhsGyLct6XEva0I9ksLTkzUiWDFmMO-os5LX_eU-Ov1L60kJfhCWDhO7E3e8n3UkAx1Ir5XOhLRlrJCiCc0s4PLYUE75ni8ijbp4ofMVGo2A65b9b7x7KXJhlwtI0WK34vzdVNbahsk3q7AvUXXWKDfiNSscS1Y7lE0RcVYuN9cQY-XTx80IsxZ_cGtT2Bach9ToQ5xrp8d-0SfeJ94Tuj-4MCjXbIc0QjTUbRGTiOswgitq4lwfaw1-bbbkHG0-uZipnCdRtQ5v5yF63zwfjm8t6mwp_oXczKXFV78VNWVW9Ax2RzdEmo71eZB3YM3GleXC-eQFMl4EqGxj-fTafJUmGrqbhziefYFubHI_P0NJpFz6WL1v0C0P3BbqlLPu1LHfh9mwwOR1axfMRlkBWSHxLR45SXAWc0Nj1tO1JyogUCGAjnykbqRxzoyCmgvlU2yQw1IooyuxI8FgGgbsHW-ldqr9CP46YcgRHtiyYp2MpPWLzmGhqK6rcSPTgR0ME4TLJj7qzsJKTgUE9YM9LJjQ1E-jTSHwLm8rpQb8UXZj3XETuhoOTU0TgBDFsD75XIg3zwR1vxUI5NxeFMYbDf3v18PvwoV6KB7C1uP-vD2EnWi5m2f1RsWQeAd8eO7o
linkProvider ProQuest Ebooks
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.title=Eloquent+JavaScript&rft.au=Haverbeke%2C+Marijn&rft.date=2014-01-01&rft.pub=No+Starch+Press&rft.isbn=9781593275846&rft.externalDBID=HA&rft.externalDocID=OTLid0000453
thumbnail_m http://cvtisr.summon.serialssolutions.com/2.0.0/image/custom?url=https%3A%2F%2Fvle.dmmserver.com%2Fmedia%2F640%2F97815932%2F9781593276614.jpg