Outline
- JavaScript Fundamentals -- What is JavaScript?
- JavaScript Fundamentals -- Variables and Scope
- JavaScript Fundamentals -- Primitive Types
- JavaScript Fundamentals -- The this Keyword
-
JavaScript Fundamentals -- The JavaScript Console
- Introduction
- console.log + Exercise
- console.log Exercise Review
- console.info + Exercise
- console.info Exercise Review
- console.warn + Exercise
- console.warn Exercise Review
- console.error + Exercise
- console.error Exercise Review
- console.table + Exercise
- console.table Exercise Review
- console.assert + Exercise
- console.assert Exercise Review
- console.group + Exercise
- console.group Exercise Review
- Conclusion
-
JavaScript Fundamentals -- Logical and Comparison Operators
- Introduction to Logical and Comparison Operators
- Truthy and Falsy Values
- Comparison Operators -- Equality and Inequality
- Comparison Operators -- Equality and Inequality Exercise
- Comparison Operators -- Equality and Inequality Exercise Review
- Comparison Operators -- Relational
- Comparison Operators -- Relational Exercise
- Comparison Operators -- Relational Exercise Review
- Logical Operators -- Or
- Logical Operators -- Or Exercise
- Logical Operators -- Or Exercise Review
- Logical Operators -- And
- Logical Operators -- And Exercise
- Logical Operators -- And Exercise Review
- Logical Operators -- Not
- Logical Operators -- Not Exercise
- Logical Operators -- Not Exercise Review
- Logical Operators -- Nullish Coalescing
- Logical Operators -- Nullish Coalescing Exercise
- Logical Operators -- Nullish Coalescing Exercise Review
- Logical and Comparison Operators Conclusion
-
JavaScript Fundamentals -- Looping in JavaScript
- Introduction to Looping in JavaScript
- for Loops
- for Loops -- Why Use Them and Gotchas
- for ... of Loops
- Looping Exercise 1
- Looping Exercise 1 Review
- for ... in Loops
- Looping Exercise 2
- Looping Exercise 2 Review
- do while Loops
- Breaking out of Loops
- Skipping Passes Through Loops
- Looping Exercise 3
- Looping Exercise 3 Review
- Conclusion to Looping in JavaScript
-
JavaScript Fundamentals -- Functions in JavaScript
- Introduction to Functions in JavaScript
- Named Functions
- Anonymous Functions
- Arrow Functions
- Functions in JavaScript Exercise 1
- Functions in JavaScript Exercise 1 Review
- Default Parameters
- Named Parameters
- Rest Parameters
- Functions in JavaScript Exercise 2
- Functions in JavaScript Exercise 2 Review
- Functions in JavaScript Real Demo
- Conclusion to Functions in JavaScript
- JavaScript Fundamentals -- Strings, Numbers, & Dates
- JavaScript Fundamentals -- Objects in JavaScript
- JavaScript Fundamentals -- Arrays in JavaScript
- JavaScript Fundamentals -- Course Conclusion
Outline
- JavaScript Fundamentals -- What is JavaScript?
- JavaScript Fundamentals -- Variables and Scope
- JavaScript Fundamentals -- Primitive Types
- JavaScript Fundamentals -- The this Keyword
-
JavaScript Fundamentals -- The JavaScript Console
- Introduction
- console.log + Exercise
- console.log Exercise Review
- console.info + Exercise
- console.info Exercise Review
- console.warn + Exercise
- console.warn Exercise Review
- console.error + Exercise
- console.error Exercise Review
- console.table + Exercise
- console.table Exercise Review
- console.assert + Exercise
- console.assert Exercise Review
- console.group + Exercise
- console.group Exercise Review
- Conclusion
-
JavaScript Fundamentals -- Logical and Comparison Operators
- Introduction to Logical and Comparison Operators
- Truthy and Falsy Values
- Comparison Operators -- Equality and Inequality
- Comparison Operators -- Equality and Inequality Exercise
- Comparison Operators -- Equality and Inequality Exercise Review
- Comparison Operators -- Relational
- Comparison Operators -- Relational Exercise
- Comparison Operators -- Relational Exercise Review
- Logical Operators -- Or
- Logical Operators -- Or Exercise
- Logical Operators -- Or Exercise Review
- Logical Operators -- And
- Logical Operators -- And Exercise
- Logical Operators -- And Exercise Review
- Logical Operators -- Not
- Logical Operators -- Not Exercise
- Logical Operators -- Not Exercise Review
- Logical Operators -- Nullish Coalescing
- Logical Operators -- Nullish Coalescing Exercise
- Logical Operators -- Nullish Coalescing Exercise Review
- Logical and Comparison Operators Conclusion
-
JavaScript Fundamentals -- Looping in JavaScript
- Introduction to Looping in JavaScript
- for Loops
- for Loops -- Why Use Them and Gotchas
- for ... of Loops
- Looping Exercise 1
- Looping Exercise 1 Review
- for ... in Loops
- Looping Exercise 2
- Looping Exercise 2 Review
- do while Loops
- Breaking out of Loops
- Skipping Passes Through Loops
- Looping Exercise 3
- Looping Exercise 3 Review
- Conclusion to Looping in JavaScript
-
JavaScript Fundamentals -- Functions in JavaScript
- Introduction to Functions in JavaScript
- Named Functions
- Anonymous Functions
- Arrow Functions
- Functions in JavaScript Exercise 1
- Functions in JavaScript Exercise 1 Review
- Default Parameters
- Named Parameters
- Rest Parameters
- Functions in JavaScript Exercise 2
- Functions in JavaScript Exercise 2 Review
- Functions in JavaScript Real Demo
- Conclusion to Functions in JavaScript
- JavaScript Fundamentals -- Strings, Numbers, & Dates
- JavaScript Fundamentals -- Objects in JavaScript
- JavaScript Fundamentals -- Arrays in JavaScript
- JavaScript Fundamentals -- Course Conclusion
There are times when you don't want the data in your object to change, but unfortunately JavaScript will let you change the vaue of a key on an object at any time, even if you use the const
keyword. Luckily, there's a built in Object
class (similar to Math
like we talked about before) that provides a method called freeze
that will help make it so the object and its data is read only. But for it to work, you first need to put the file in strict mode:
'use strict';
// File contents
After that, you can call the freeze
method and pass in an object:
'use strict';
const dog = {
name: 'Max'
}
Object.freeze(dog);
Now that the object is frozen, we can't change the value of any key or add a key to the object:
dog.name = 'Duke'; // Error Cannot assign to read only property 'name' of object
dog.age = 3; // Error Cannot add property age, object is not extensible
This will work in most situations, except if you try and reassign the entire value of the variable to a new object. If your object is declared with the let
keyword, you could reassign its value to a new object, even if it's frozen. However, if you use const
, JavaScript prevents that as well. So if you use const
and Object.freeze
together, your objects should be protected pretty well.
You can read more about this in this blog post.