1. Section Introduction
2.1 2_execution_context.zip
2. The Execution Context
3. A Consistent Global Object
4.1 4_hoisting.zip
4. Hoisting
5.1 5_declaration_expression.zip
5. Function Declarations Versus Function Expressions
6.1 6_function_execution_exercise.zip
6. Exercise Start Function Execution Context
7.1 6_function_execution_exercise.zip
7. Exercise End Function Execution Context
8. Lexical Environment
9.1 8_scope.zip
9. Scope and the Scope Chain
10.1 9_block_scope.zip
10. Block Scope
11.1 10_let_for_loop.zip
11. Exercise Using let in a for Loop
12.1 11_creating_constants.zip
12. Creating Constants
13. Should you Continue Using var
14.1 13_danger_of_scope_chain.zip
14. Global Variables and the Danger of the Scope Chain
15.1 14_scope_exercise.zip
15. Exercise Start Scope
16.1 14_scope_exercise.zip
16. Exercise End Scope
17. JavaScript and Data Types
18.1 16_objects_everywhere.zip
18. Objects are Everywhere
19.1 17_Type_Coercion.zip
19. Type Coercion
20.1 18_truthy_falsy.zip
20. Making Use of Truthy and Falsy
21. Loose Equality Versus Strict Equality
22.1 20_coercion_exercise.zip
22. Exercise Start Coercion
23.1 20_coercion_exercise.zip
23. Exercise End Coercion
24. Using the BigInt Type
25.1 22_pass_value_ref.zip
25. Passing Primitives and Objects Value or Reference
26.1 23_clone_object.zip
26. Cloning JavaScript Objects
27. Exercise Pass by Reference.html
28.1 25_exercise.zip
28. Exercise Start Pass by Reference and Cloning
29.1 25_exercise.zip
29. Exercise End Pass by Reference and Cloning
30.1 26_strict.zip
30. Using Strict Mode