Skip to content

fdelacruz/Eloquent-JS

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

Eloquent-JS

Learning Competencies

  • Learning JAVASCRIPT

##Summary These challenges have been taken from the Eloquent JavaScript PDF file. This book dives into JS immediately, providing elaborate explanations for every topic in the chapters, but more importantly challenges which engage the reader/programmer.

The challenges are inside the jsChallenges director where subsequent directories for each chapter follow in numeric order. Each chapter, except for chapter 1, have multiple js challenges. There are 20 directories with README.md for each providing an idea and hints for the challenges.

If you haven't read Eloquent Javascript, I would suggest that you don't read the text verbatim, rather skim through and jump into the challenge as soon as you have a basic understanding. Eloquent JavaScript, second edition, Margijn Haverbeke

##Solutions: Check it out: Code Sandbox

##Challenges

##Challenge 1: Program Structure This section will test skills in:

  • Expressions and statements, variables
  • Keywords and reserved words
  • The environment
  • Functions
  • Console.log function
  • Return values
  • Prompt and confirm control flow
  • Conditional execution
  • While and do loops
  • Indenting code
  • For loops
  • Breakingout of a loop
  • Updating variables succinctly
  • Dispatching on a value with switch
  • Capitalization
  • Comments

Check it out: Program Structure

##Challenge 2: Functions This section will test skills in:

  • Defining a function
  • Parameters and scopes
  • Nested scope
  • Functions as Values
  • Declaration Notation
  • The Call Stack
  • Optional Arguments
  • Closure
  • Recursion
  • Growing Functions
  • Functions and side effects

Check it out: Functions

##Challenge 3: Data Structures: Objects And Arrays This section will test skills in:

  • 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

Check it out: Data Structures: Objects And Arrays

##Challenge 4: Higher Order Functions This section will test skills in:

  • Abstraction
  • Abstracting array traversal
  • Higher-order functions
  • Passing along arguments
  • JSON
  • Filtering an array
  • Transforming with map
  • Summarizing with reduce
  • Composability

Check it out: Higher Order Functions

##Challenge 5: The Secret Life of Objects This section will test skills in:

  • Prototypes
  • Constructors
  • Overriding derived properties
  • Prototype interference
  • Polymorphism
  • Getters and setters
  • Inheritance

Check it out: The Secret Life of Objects

##Challenge 6: Project Electronic Life This section will test skills in:

  • Representing space
  • The world object
  • this and its scope
  • Animating life
  • More life forms
  • A more lifelike simulation
  • Action handlers
  • Populating the new world
  • Bringing it to life

Check it out: Project Electronic Life

##Challenge 7: Bugs and Error Handling This section will test skills in:

  • Programmer Mistakes
  • Strict mode
  • Testing
  • Debugging
  • Error propagation
  • Exceptions
  • Cleaning up after exceptions
  • Selective catching
  • Assertions

Check it out: Bugs and Error Handling

##Challenge 8: Regular Expressions This section will test skills in:

  • 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

Check it out: Regular Expressions

##Challenge 9: Regular Expressions This section will test skills in:

  • Why modules help
  • Reuse
  • Decoupling
  • Using functions as namespaces
  • Objects as interfaces
  • Detaching from the global scope
  • Evaluating data as code
  • Require
  • Slow-loading modules
  • Interface design
  • Predictability
  • Composability
  • Layered interfaces

Check it out: Modules

##Challenge 10: Project: A Programming Language This section will test skills in:

  • Parsing
  • The evaluator
  • Special forms
  • The environment
  • Functions
  • Compilation
  • Cheating

Check it out: Project: A Programming Language

##Challenge 11: JavaScript and the Browser

Check it out: JavaScript and the Browser

##Challenge 12: The Document Object Model This section will test skills in:

  • Document Structure
  • Trees
  • The Standard
  • Moving Through The Tree
  • Finding Elements
  • Changing the Document
  • Creating Nodes
  • Attributes
  • Layout
  • Styling

Check it out: The Document Object Model

##Challenge 13: Handling Events This section will test skills in:

  • Event Hanlders
  • Events And DOM Nodes
  • Event Objects
  • Propagation
  • Default Actions
  • Key Events
  • Creating Nodes
  • Mouse Clicks
  • Mouse Motion
  • Scroll Events
  • Focus Events
  • Load Even
  • Script Execution Timeline
  • Setting Timers
  • Debouncing

Check it out: Handling Events

##Challenge 14: Project: A Platform Game This section will test skills in:

  • The Game
  • The Technology
  • Event Objects
  • Tracking Trees

Check it out: Project: A Platform Game

##Challenge 15: Drawing on Canvas This section will test skills in:

  • SVG
  • The Canvas Element
  • Filling and Stroking
  • Paths
  • Curves
  • Drawing a Pie Chart
  • Text
  • Images
  • Transformation
  • Storing and Clearing Transformations
  • Back to the Game
  • Choose A Graphics Interface

Check it out: Drawing on Canvas

##Challenge 16: HTTP This section will test skills in:

  • The Protocool
  • Browsers and HTTP
  • XMLHTTPREQUEST
  • Sending a Request
  • Asynchronous Requests
  • Fetching XML Data
  • HTTP Sandboxing
  • Abstracting Request
  • Promises
  • Appreciating HTTP
  • Security and HTTPS

Check it out: HTTP

##Challenge 17: Form And Form Fields This section will test skills in:

  • Fields
  • Focus
  • Disabled Fields
  • The Form As A Whole
  • Text Fields
  • Checkboxes And Radio Buttons
  • Select Fields
  • File Fields
  • Storing Data Client-Side

Check it out: Form And Form Fields

##Challenge 18: Project: Paint A Program This section will test skills in:

  • Implementation
  • Building Up the DOM
  • The Foundation
  • Tool Selection
  • Color And Brush Size
  • Saving
  • Loading Image Files
  • Finishing Up

Check it out: Project: Paint A Program

##Challenge 19: Node.JS This section will test skills in:

  • Background
  • Asynchronicity
  • The Node Command
  • Modules
  • Installing With NPM
  • The File Sysyem Module
  • The HTTP Module
  • Streams
  • A Simple File Server
  • Error Handling

Check it out: Node.JS

##Challenge 20: Skill-Sharing Websites This section will test skills in:

  • Design
  • HTTP Interface
  • The Server
  • Serving Files
  • Talks As Resources
  • Long Polling Support
  • The Client
  • HTML
  • Starting Up
  • Displaying Talks
  • Updating The Server
  • Noticing Chagnes

Check it out: Skill-Sharing Webstite

##Copyright

Eloquent JavaScript, second edition, Marijn Haverbeke

The MIT License (MIT)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%