Ultimate JavaScript Objects
4.5 (45 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,534 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Ultimate JavaScript Objects to your Wishlist.

Add to Wishlist

Ultimate JavaScript Objects

The Ultimate Guide to JavaScript Objects, where students will learn to create, copy, and master JavaScript Objects
4.5 (45 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,534 students enrolled
Created by Daniel Stern
Last updated 7/2016
Curiosity Sale
Current price: $10 Original price: $20 Discount: 50% off
30-Day Money-Back Guarantee
  • 2.5 hours on-demand video
  • 16 Supplemental Resources
  • 8 Coding exercises
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Understand and explain the purpose of objects in JavaScript and in general
  • Create objects using several different kinds of notation
  • Iterate over object properties effectively
  • Copy and deep copy objects and understand the underlying consequences
  • Effective usage and formatting of JSON (JavaScript Object Notation)
  • Install Lodash.js and implement it in practical situations
  • Create and implement ES6 Classes and methods
  • Understand and execute ES6 Class Inheritance
  • Use ES6 Symbols as a key in objects
  • Composite object methods into new classes
  • Understand the consequences and purpose of prototype
  • Freeze and seal objects to restrict future changes to them
  • Correctly differentiate between methods and properties
  • Intelligently choose object manipulation software to suit real business applications
View Curriculum
  • Students will need to set aside time to do the quizzes and examples, as well as code along with the live demonstrations, as these are highly recommended
  • Any workstation running Google Chrome (even certain library or public computers) are sufficient for 90% of the coding exercises
  • Having your own workstation capable of running Node.JS is recommended for completing 100% of examples
  • Basic knowledge of JavaScript is recommended, but not required, as detailed step-by-step examples will be provided in every example

Ultimate JavaScript Objects, the most epic installment of the Ultimate JavaScript series, is a course designed to train any student to be a complete JavaScript Object Pro.

Why is understanding JavaScript objects useful? Any web developer or back-end coder using Node uses JavaScript every day, and features of JavaScript Objects you don't know about yet could be costing you hundreds of hours in lost productivity.

That's why the Code Whisperer, Daniel Stern, put together this course - to arm you with only the most practical tools to increase the productivity in your JavaScript Workflow.

We'll cover tons of topics that YOU need to know including

  • How to create JavaScript Objects the right way
  • How to copy an object without unintended consequences
  • How to use ES6 Classes to make your projects more maintainable and clear
  • All the key terminology and concepts to ace any job interview!

We've really pulled out all the stops to deliver a course that we truly believe is an incredible value.

For the LOWEST PRICE a course can be sold for on this site, you get

  • Two full hours of densely packed educational video
  • Over 10 downloadable handouts 
  • Over 50 challenging quiz questions throughout the course so that you retain the knowledge you need
  • TEN cutting edge coding tests right inside the browser! (That's more than any known competing courses offer)
  • Ten chapters packed with JavaScript knowledge

There's not enough room in this summary to list every reason why this course is an amazing value!

  • A price as low or lower than any non-free Udemy course, but packed with the content of a premium course
  • 100% Money Back Guarantee
  • Dozens of useful techniques distilled to improve your productivity and increase your esteem in your coding circle

This course is the crown jewel of any JavaScript student's collection of go-to references and educational compendia.

With the 100% Money Back guarantee, plus an incredible value, there's no reason not to grab to this course today!

Who is the target audience?
  • This course is ideal for any student of JavaScript who wishes to improve their knowledge
  • Even extremely seasoned developers will have their skills refreshed by the large number of quizzes and coding tests
  • Any back-end developer working in a Node.JS environment
  • Any front-end developer writing JavaScript code on a daily basis
  • Any hobbyist using JavaScript as part of a hardware API - Raspberry PI, Edison, etc
Students Who Viewed This Course Also Viewed
Curriculum For This Course
65 Lectures
Introduction to JavaScript Objects
3 Lectures 06:41

Why discuss why it makes sense to learn about JavaScript objects.

  •  JavaScript objects are incredibly flexible and easy to use
  •  Amazing for representing data reflecting real-life scenarios
  •  Format compliments JavaScript’s weakly-typed and dynamic style
  •  Useful for front-end applications (Angular, React)
  •  Integrates directly with Node.js-based back-ends
  •  Query certain database types (MongoDB, CouchDB) directly with JavaScript objects
Preview 02:18

We look at the course ahead and discuss the topics that will be covered.

  •  Learn about objects – what, why and how
  •  Create and interact with objects in JavaScript via examples and demos
  •  Understand object scope and apply it in real JavaScript scenarios
  •  Create objects via innovative ES6 classes
  •  Work with JSON (JavaScript Object Notation) – a popular API and DB convention
  • Use Lodash to streamline many common objects chores
Preview 01:58

We discuss a few key steps / points that need to be addressed before starting the course.

  • (Mostly) All code demos will take place in Google Chrome
  •  Code along at home with all code demos
  •  Do all the quizzes and exercises
  •  PDFs for each chapter are provided

Preview 02:25

This quiz will get your brain started and clue you in on areas you should pay attention to. Don't worry if you get some or all of the questions wrong - we haven't covered any of this stuff yet!

Do You Know... JavaScript Objects?
7 questions
Objects Exposed
11 Lectures 18:53

We take a look ahead at this chapter and what we will be covering.

  •  Cover all relevant aspects of Object theory
  •  Explain OOP
  •  Compare objects and arrays
  •  Discuss the many weird and interesting properties of JavaScript objects specifically
  •  Take a look at the colorful history of JavaScript objects
Preview 00:49

We discuss the most basic explanation of what an object is and go from there.

  •  An object is a collection of values (properties)
  •  All properties have a unique key
  •  Order of properties cannot be trusted
  •  Some properties can be functions (methods)
  •  Can sometimes be serialized – or turned into a universal form of data like a string
Preview 01:36

In this video, we look at several real-life example of objects

Objects Explained - Live Example

We talk about OOP, or object-oriented programming, what it means, and preview the chapter that deals exclusively with OOP.

  •  Objects can be instances of classes
  •  Classes are like blueprints, objects are like the manufactured goods
  •  Each instance of a class is independent, has own properties
  •  Useful for solving difficult problems or ones that are hard to conceptualize
Preview 02:13

A short, visual lecture to help understand OOP

Preview 01:45

We discuss the capabilities of JavaScript objects

  •  Transfer data between functions or even programs
  •  Group complex data in ways easy for humans to understand
  •  Represent classes that work together in grand and complex ways
Preview 03:27

We take a look at situations where it would (and would not) be appropriate to use objects.

  • Collection of properties that all fit together thematically
  • Elements in no particular order
Preview 01:14

We compare objects and arrays, noting their similarities and differences.

Preview 00:55

We look at some of the weird and quirky parts of JS objects.

  •  Can borrow methods from other functions using the mysterious this keyword
  •  Inside of objects, special scope applies
  •  Objects can be initialized by classes, but still have dynamic properties added later
Preview 01:45

We observe how JavaScript objects are different today than they were ten years ago.

  •  No classes before ES6
  •  OOP could still be implemented through libraries
Preview 01:36

We conclude this riveting chapter.

  •  JavaScript objects are dynamic and powerful
  •  Can be used for most database or front-end purposes
  •  Objects are similar to arrays
  •  Objects work well when implemented using object-oriented programming
  •  Copied by reference
Preview 01:24

This quiz will test your knowledge of the workings and history of JavaScript objects

Objects Exposed: Exam
6 questions
Working with Objects
13 Lectures 36:16

In this chapter we take an overview of what working with objects is all about.

  •  JavaScript objects are easy to learn, yet tough to master
  •  Numerous ways to create, edit and access – some with differing consequences
  •  Some features (like Freezing and Copying) are more obscure but still useful
Introduction: Working with Objects

We take a look ahead at what this high-intensity chapter will cover.

  •  Create objects using object literal notation (and alternatives)
  •  Add and access object properties
  •  Iterate over properties
  •  Map arrays of objects
  •  Explore ES6 features – symbol, observe and freeze
  •  Learn about object.prototype
Module Roadmap: Working with Objects

We discuss and demonstrate the creation of JavaScript objects.

  • Objects can be created using object literal syntax { }
  • Objects can also be created with the new keyword
  • Can also be created with Object.create
  • No perfect solution for every situation
  • Using new allows for classlike behavior and prototypical inheritance
Creating Objects

We chat about, and demo, adding and checking object properties.

  • Properties can be added to existing objects with dot or bracket notation
  • Access also occurs via dot or bracket notation
  • Some properties only accessible via bracket notation
Adding and Accessing Object Properties

We briefly discuss and demo object methods, as a lead in to the next chapter.

  • Objects can have properties which are functions
  • These are called methods
  • No difference between method and function except this keyword
  • No practical reason to implement non-static methods without this
  • The this keyword will be fully explained in the next chapter on Object Scope
Adding Methods to Objects

We go over two ways to remove object properties.

  • Property values can be removed without removing the key by setting them to undefined
  • Both key and value can be removed by using the delete keyword
Removing Object Properties

Property Removal Peril
1 question

We discuss and demo looping through object properties.

  •  Object properties can be iterated through via For In Loop
  •  Used to be very challenging to do this in ES5, now is easy
  •  Looping doesn’t usually make sense since objects tend to have different types of values as variables
  •  Sometimes  can be useful with array-like objects
Iterating Through Object Properties

Implement Iteration
1 question

We explain and demo the sometimes challenging process of array-object maps.

  • An extremely common problem is needing to transform (or map) an array of congruent objects into a different type of object
  • Editing existing objects / copying both possible
Mapping Arrays of Objects

Map Those Objects
1 question

We discuss and demo an extremely useful ES6 feature, Symbols, which can be used to access unique object properties.

  • Symbols are guaranteed to be unique
  • Conceptually identical to a GUID (long, random string)
Symbolly Amazing - Accessing Object Properties with Symbols

We discuss and demo two unusual object methods, freeze and seal, which restrict the affected object.

  • New to ES6
  • Both restrict (control) ways an object can be modified
  • Mostly used to prevent developer error
  • Prevents new properties from being added (seal) or anything at all from changing (freeze)
Freeze & Seal

Freeze Fun and Seal Skills
1 question

We discuss and demo the oft-misunderstood Proxy, which is an incredibly useful new ES6 feature.

  • Proxies allow greatly increased oversight of objects
  • Control how values are changed
Observing Changes with Proxies

We chat about the dread Object.prototype, and even include a demo.

  • Prototype is a powerful but highly confusing feature of objects

We conclude the edge-of-your-seat adventure that was this chapter.

  •  Objects can be created various ways – literal syntax is recommended
  •  Objects can have any number of properties which are easily accessed or changed
  •  Can be iterated with For In Loop
  •  Symbols are the preferred way of accessing properties internally
  •  Freeze and Seal both prevent object from changing
  •  Proxies can add further control to objects

Objective: Objects
6 questions
Object Scope
6 Lectures 12:48

We'll introduce this mysterious concept of object scope.

  •  JavaScript has three scopes – window, function and eval
  •  Object scope is function scope when that function is a method of an object
Introduction to Object Scope

We'll explain more about the this keyword.

  •  Value of this keyword is equal to the object itself, when this is inside one of its bound methods
  •  Value of this is always provided – no need to ever set it
  •  Though innocuous, a huge amount of new code constructs are possible
Understanding This

We'll discuss Strict Mode, a cool ES5/ES6 feature.

  •  Activates streamlined version of JavaScript
  •  Activated by putting “use strict” at the top of script or function
What's Up With Strict Mode?

Identity Inspection
1 question

We talk about Binding Scope, the next level for controlling the this keyword.

  •  All functions have a bind method which creates a copy of the function with a different value of this
  •  By binding a function to an object, we create a method that can refer to properties of the object itself and its other methods
Binding Scope

We explain and demo object composition, a powerful construct that exists in JavaScript.

  •  Shares methods between objects on a flat hierarchy using this and bind
  •  Not possible in many other languages and therefore worth investigating
Object Composition

We wrap up this spellbinding chapter.

  • Using the this keyword allows methods to refer to the object of which they are part
  • The value of this can be changed in any function using the function’s bind method
  • Unusual cases of the this keyword can be avoided by using strict mode
  • Creating class-like objects by using many methods and the this keyword is called composition

This quiz will test your knowledge of OOP

5 questions
ES6 Classes
7 Lectures 17:07

We ask the question - why ES6 classes?

  •  Use an ES6 class to make lots of similar objects
Why ES6 Classes?

We explain exactly what an ES6 class is.

  •  Way to access high-level functionality without libraries or hacks
  •  Can be more easy to understand than functions
  •  Suitable for many situations where the end result is a complex object with many methods and properties
What is an ES6 Class?

We install and configure Atom to be the ultimate JavaScript development console.

  •  Install Atom (v1.8.0 or compatible)
  •  Install platformio-ide-terminal (2.1.0 or compatible plugin)
  •  Install NodeJS
  •  NPM install Nodemon
Preview 02:55

In this lecture, we explain and demo the process of creating an ES6 class.

  •  ES6 classes can be created with the class keyword
  •  Can also be created with class expressions
Creating an ES6 Class

We explain and demo adding methods to classes.

  •  Classes can have properties and methods just like objects
  •  Methods have convenient syntax without the word function
Class Methods and Properties

We explain and demo inheritance, a means of accessing the methods of other classes in a hierarchy.

  •  Indicate inheritance with the extends keyword
  •  Access parent methods with the super keyword

We cover what we learned in this peerless chapter.

  • Classes are versatile and convenient
  • At its heart, a function that returns objects
  • Only works in ES6+ but can be readily compiled to ES5
Classes: Conclusion

Test your knowledge of ES6 Classes

Classes Conundrum!
6 questions
Copying Objects
6 Lectures 11:46

We will look ahead to what we'll be covering in this chapter

  •  Learn about the complexities of copying JavaScript objects
  •  Learn several strategies for achieving end goals
  •  Apply strategies in a few demos
Preview 01:06

In this chapter, we compare copying to referencing and see what the difference is.

Copying vs Referencing

We discuss the complicated points of copying objects an some solutions

  •  Some values (references to other objects) cannot be truly copied to another object
  •  Objects with only primitives (strings, numbers, etc.) as properties can be copied without any complication at all
Copying Confusion

We discuss and demonstrate two practical ways to shallow copy an object.

  •  Create an empty object and loop through the properties of the original, adding them to the copy
  •  Create an object with object literal syntax and include the copied variables as key-value pairs
  •  Object properties will be copied as references only (fine if this is the intended result)
Copying an Object

Copy Challenge
1 question

We explain and preview the process of deep copying.

  • A copy of an object which also attempts to copy referenced values is called a “deep” copy
  • Deep copying is not possible if loops exist within reference
Into the Deep - Copying Nested Properties Explained

We conclude by reviewing what we learned in this chapter.

  •  Copying objects is more difficult than copying strings or floats
  •  Objects are not copied when creating a new reference
  •  Copying objects with no references as properties is straightforward
  •  Copying objects with nested properties is challenging but not impossible
  •  Objects with loop references cannot be deep copied
Copying Conclusion

Do you understand copying JavaScript objects?

Copying Questionnaire
4 questions
7 Lectures 11:32

We preview the chapter and define JSON

  •  JavaScript Object Notation
  •  Means of encoding data in object or array format
  • Can store certain properties
Introduction / What is JSON?

Why answer the question: Why JSON?

  •  Turns any object into a string
  •  Can be transmitted efficiently across HTTP
  •  Responses sent from server in JSON do not need to be heavily parsed
Preview 01:29

We compare XML and JSON


We explain and demo the process of serialization, or encoding JavaScript objects.

  •  Turning JavaScript objects into strings (or JSON) is called serializing
  •  Can be done with built-in JSON module
  •  Some properties cannot be serialized
Serializing Javascript Objects

Stringify Showdown
1 question

In this video, we decode, or parse, JSON.

  •  Parsing (or de-serializing) JSON turns it into a JavaScript object
  •  Only valid JSON can be parsed
Parsing JSON

Parsing Problems
1 question

We briefly discuss the idea of using JSON over HTTP connections.

  •  Perfect for Node.js backend
  •  Minimal formatting required
Transmitting JavaScript Objects with HTTP - Explained

We wrap up the chapter on JSON.

  •  JSON is lightweight and versatile
  •  Extremely easy to use in any JavaScript environment
  •  Good choice for communication between browser and server
  •  Easily parsed and stringified with JSON module
JSON Conclusion

Are you the JSON master? Test your skills with this quiz.

JSON Jumble
5 questions
9 Lectures 16:10

We introduce Lodash, the premier object manipulation library.

  •  Functionally identical to Underscore but better maintained
  •  Implements many useful functions for operating on objects
  •  Usable in any front-end or back-end (Node) JavaScript project 
Introduction / What is Lodash?

We explain in convincing terms why Lodash should be used.

  •  Implementing a function to copy an object that covers every corner case is non-trivial
  •  Even if utility is implemented correctly, performance issues are also a challenge
  •  Backed by massive battery of tests and performance benchmarks - > 6,566 tests
Why Lodash?

We explain and demonstrate the implementation of the Lodash library.

  •  Lodash can be included as a script on any front-end page
  •  Can be installed via NPM for NodeJS server
Implementing Lodash in a Project

We explain and demo _.assign

  •  Copies the properties of any number of objects to another object
  •  Can be used to create a mutated or hybrid copy of an objec
Assigning Object Properties with Lodash (Cloning)

A quick demo of _.invert

  •  Used to swap all an object‘s keys and values

We describe and demo the useful _.pick() method

  •  Takes only the chosen properties from an object and creates a new object from that copy
Picking Object Values

A quick description and demo of merge.

  •  Merges two arrays of objects into an array of combinations
Merging Object Sets

We demo cloneDeep() to finally make a deep copy of an object.

Into the Deep Pt. II: Deep Cloning With Lodash

We conclude this last and final chapter, other than the proceeding one.

  •  Lodash methods exist for almost any object operation necessary
  •  Methods especially exist for those operations that are tricky or error-prone

The Lodash Lowdown: Object Edition
5 questions
3 Lectures 10:14

We review what we learned in this spellbinding course.

Reviewing the Things We Learned

We discuss resources for further education on the topic of this course.

Continue Your Education

Thank You!

This exam is designed to test all your skills! You'll need to recall knowledge from every chapter in order to ace this quiz!

Ultimate JavaScript Objects - Course Summary Exam
19 questions
About the Instructor
Daniel Stern
4.2 Average rating
3,646 Reviews
38,924 Students
9 Courses
The Code Whisperer

Known in development circles as “the Code Whisperer," Daniel Stern has been believed to possess a supernatural connection to computers ever since he talked the supercomputer Deep Blue off the roof of a twelve-story St. Petersburg apartment building, following its shameful loss to Gary Kasparov.

He can often be found singing softly to his tablet, or gently caressing his aluminum keyboard in his arms.

Daniel has been working as a front end and full stack developer in the tech industry since 2011. He's developed single-page applications for banks like CIBC, charities like the Ontario Institute for Cancer Research, and at ad agencies like McLaren McCann, TraffikGroup and Olson. Throughout his labors, he's worked on computer programming in his spare time because, well, he's obsessed with it.

In addition to being featured in both CSS Weekly and JavaScript weekly, Daniel is well-known throughout the open-source community for maintaining several open-source tools, most notably the Angular.js and LESS-based tool, Range .css and the Angular .js audio tool, ngAudio.

In addition to being trusted by the open source community to develop top-quality, functional code, Daniel has also been invited to speak at numerous conferences including Full Stack Conference 2014 in London, England.

Daniel is an active learner and very passionate about the following technologies,

- Node.js
- Angular.js
- TypeScript
- MongoDB
- Brackets, the Open Source Code Editor
- Esprima
- Grunt
- Yeoman
- Many, many, many more