├── .gitignore ├── 00_Javascript Development Tools ├── 00_JavaScript Coding Tools │ ├── 00_What is JavaScript? │ │ ├── 00_.md │ │ ├── 01_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 01_Editors and IDEs │ │ ├── 00_.md │ │ ├── 01_Checkboxes.prob.md │ │ └── index.yaml │ └── index.yaml ├── 01_Debugging tools │ ├── 00_Debugging │ │ ├── 00_.md │ │ ├── 01_Multiple Choice.prob.md │ │ └── index.yaml │ └── index.yaml ├── 02_Utilities │ ├── 00_Tools and Utilities │ │ ├── 00_.md │ │ ├── 01_Multiple Choice.prob.md │ │ └── index.yaml │ └── index.yaml └── index.yaml ├── 01_Introduction to JavaScript Development ├── 00_Dynamic HTML │ ├── 00_What is DHTML? │ │ ├── 00_.md │ │ ├── 01_Multiple Choice.prob.md │ │ └── index.yaml │ └── index.yaml ├── 01_Intro to JavaScript │ ├── 00_Why use JavaScript? │ │ ├── 00_.md │ │ ├── 01_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 01_JavaScript Advantages │ │ ├── 00_.md │ │ ├── 01_Checkboxes.prob.md │ │ └── index.yaml │ ├── 02_JavaScript Engines │ │ ├── 00_.md │ │ ├── 01_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 03_Using JavaScript Code │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── UsingJavascriptCodeExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 04_When is JavaScript Executed? │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── WhenIsJavascriptExecutedExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ └── index.yaml ├── 02_Node.js Overview │ ├── 00_JavaScript in the console │ │ ├── 00_.md │ │ ├── 01_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 01_Installing Node.js on Windows │ │ ├── 00_.md │ │ └── index.yaml │ ├── 02_Adding Node.js to Path on Linux and OS X │ │ ├── 00_.md │ │ └── index.yaml │ └── index.yaml ├── 03_JavaScript Syntax │ ├── 00_Syntax │ │ ├── 00_.md │ │ └── index.yaml │ └── index.yaml ├── 04_Standard Javascript Objects │ ├── 00_Pop-up Boxes │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── PopUpBoxesExample.js │ │ ├── 02_.md │ │ ├── 03_Checkboxes.prob.md │ │ └── index.yaml │ ├── 01_Built-In Browser Objects │ │ ├── 00_.md │ │ ├── 01_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 02_The Math Object │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── TheMathObjectExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 03_The Date Object │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── TheDateObjectExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ └── index.yaml ├── 05_Debugging in JavaScript │ ├── 00_Debugging │ │ ├── 00_.md │ │ ├── 01_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 01_Firebug │ │ ├── 00_.md │ │ └── index.yaml │ ├── 02_Debugging Node.js │ │ ├── 00_.md │ │ └── index.yaml │ ├── 03_JavaScript Console Object │ │ ├── 00_.md │ │ ├── 01_Multiple Choice.prob.md │ │ └── index.yaml │ └── index.yaml └── index.yaml ├── 02_Data Types and Variables ├── 00_Data Types │ ├── 00_How Computing Works │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── HowComputingWorksExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 01_What Is a Data Type? │ │ ├── 00_.md │ │ └── index.yaml │ ├── 02_JavaScript Data Types │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── JavascriptDataTypesExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 03_Numbers in JavaScript │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── NumbersInJavascriptExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 04_Numbers Conversion │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── NumbersConversionExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 05_Floating-Point Numbers │ │ ├── 00_.md │ │ └── index.yaml │ ├── 06_Integer Numbers │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── IntegerNumbersExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 07_Boolean │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── BooleanExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 08_String │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── StringExample.js │ │ ├── 02_.md │ │ ├── 03_Checkboxes.prob.md │ │ └── index.yaml │ ├── 09_Parsing String to Number │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── ParsingStringToNumberExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ └── index.yaml ├── 01_Declaring and Using Variables │ ├── 00_What Is a Variable? │ │ ├── 00_.md │ │ └── index.yaml │ ├── 01_Checking a Variable Type │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── CheckingVariableTypeExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 02_Declaring and Using Variables │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── DeclaringAndUsingVariablesExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 03_Identifiers │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── IdentifiersExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 04_Assigning Values To Variables │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── AssigningValuesToVariablesExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 05_Initializing Variables │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── InitializingVariablesExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 06_Local and Global Variables │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── LocalAndGlobalVariablesExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ └── index.yaml └── index.yaml ├── 03_Operators and Expressions ├── 00_Operators │ ├── 00_What is an Operator? │ │ ├── 00_.md │ │ ├── 01_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 01_Arithmetic Operators │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── ArithmeticOperatorsExample.js │ │ ├── 02_ .md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 02_Logical Operators │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── LogicalOperatorsExample.js │ │ ├── 02_.md │ │ ├── 03_Checkboxes.prob.md │ │ └── index.yaml │ ├── 03_Bitwise Operators │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── BitwiseOperatorsExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 04_Comparison Operators │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── ComparisonOperatorsExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 05_Assignment Operators │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── AssignmentOperatorsExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 06_Other Operators │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── OtherOperatorsExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ └── index.yaml ├── 01_Expressions │ ├── 00_JavaScript Expressions │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── JavaScriptExpressionsExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ └── index.yaml └── index.yaml ├── 04_Conditional Statements ├── 00_The if Statements │ ├── 00_if Statement │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── IfStatementExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 01_if-else Statement │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── IfElseStatementExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 02_Nested if Statements │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── NestedIfStatementsExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ └── index.yaml ├── 01_The switch Statement │ ├── 00_switch Statement │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── SwitchStatementExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 01_Fall-through Behavior │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── FallThroughBehaviorExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 02_Expressions in the Case Label │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── ExpressionsInTheCaseLabelExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ └── index.yaml └── index.yaml ├── 05_Loops ├── 00_Basic Loops │ ├── 00_What is a Loop? │ │ ├── 00_.md │ │ └── index.yaml │ ├── 01_While Loop │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── WhileLoopExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 02_Break Operator │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── BreakOperatorExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 03_Do-while Loop │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── DoWhileLoopExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 04_For Loop │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── ForLoopExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ └── index.yaml ├── 01_Other Loops │ ├── 00_Nested Loops │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── NestedLoopsExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 01_For-in Loop │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── ForInLoopExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 02_For-of Loop │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── ForOfLoopExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ └── index.yaml └── index.yaml ├── 06_Arrays ├── 00_Intro to Arrays │ ├── 00_What are Arrays? │ │ ├── 00_.md │ │ └── index.yaml │ ├── 01_Declaring Arrays │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── DeclaringArraysExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 02_Accessing Array Element │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── AccessingArrayElementExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 03_Iterating Arrays │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── IteratingArraysExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ └── index.yaml ├── 01_Array Methods │ ├── 00_Inserting Elements │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── InsertingElementsExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 01_Removing Elements │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── RemovingElementsExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 02_Concatenating Arrays │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── ConcatenatingArraysExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 03_Splicing Arrays │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── SplicingArraysExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 04_Methods for Conditions │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── MethodsForConditionsExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 05_Methods for Transformation │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── MethodsForTransformationExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 06_Methods for Iteration │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── MethodsForIterationExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 07_Methods for Searching │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── MethodsForSearchingExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 08_Other Array Methods │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── OtherArrayMethodsExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 09_Chaining Array Methods │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── ChainingArrayMethodsExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ └── index.yaml └── index.yaml ├── 07_Functions ├── 00_Functions Overview │ ├── 00_What is a Function? │ │ ├── 00_.md │ │ └── index.yaml │ ├── 01_Declaring and Creating Functions │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── DeclaringAndCreatingFunctions.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ └── index.yaml ├── 01_Calling Functions │ ├── 00_Calling Functions │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── CallingFunctionsExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 01_Function Parameters │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── FunctionParametersExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ └── index.yaml ├── 02_Using Functions │ ├── 00_The arguments Object │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── TheArgumentsObjectExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 01_Returning Values From Functions │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── ReturningValuesFromFunctionsExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 02_Function Scope │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── FunctionScopeExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 03_Function Overloading │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── FunctionOverloadingExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ └── index.yaml └── index.yaml ├── 08_Using Objects ├── 00_Objects Overview │ ├── 00_What are Objects? │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── WhatAreObjectsExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 01_Creating Objects │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── CreatingObjectsExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ └── index.yaml ├── 01_Object Properties │ ├── 00_Reference and Primitive Types │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── ReferenceAndPrimitiveTypesExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 01_Object Building Function │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── ObjectBuildingFunctionExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ └── index.yaml └── index.yaml ├── 09_Strings ├── 00_String in JavaScript │ ├── 00_What is a String? │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── WhatIsAStringExample.js │ │ ├── 02_.md │ │ ├── 03_Checkboxes.prob.md │ │ └── index.yaml │ ├── 01_String Wrapper │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── StringWrapperExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 02_String Escape │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── StringEscapeExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ └── index.yaml ├── 01_String Methods │ ├── 00_Basic Methods │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── BasicMethodsExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 01_Search Methods │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── SearchMethodsExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 02_Substring Method │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── SubstringMethodExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 03_String Concatenation │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── StringConcatenationExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 04_Other String Methods │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── OtherStringMethodsExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ └── index.yaml └── index.yaml ├── 10_Regular Expressions ├── 00_Regex Overview │ ├── 00_Regex │ │ ├── 00_.md │ │ └── index.yaml │ ├── 01_Regex Syntax │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── RegexSyntaxExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 02_Regex Methods │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── RegexMethodsExample.js │ │ ├── 02_.md │ │ ├── 03_Multiple Choice.prob.md │ │ └── index.yaml │ ├── 03_Regex Flags │ │ ├── 00_.md │ │ └── index.yaml │ └── index.yaml ├── 01_Applications │ ├── 00_Using Regex │ │ ├── 00_.md │ │ ├── 01_.repl.yaml │ │ ├── 01_.repl │ │ │ └── src │ │ │ │ └── UsingRegexExample.js │ │ ├── 02_.md │ │ └── index.yaml │ ├── 01_Special Characters in Regex │ │ ├── 00_.md │ │ └── index.yaml │ └── index.yaml └── index.yaml ├── LICENSE.md ├── README.md ├── SOURCE_CODE_LICENSE.md ├── ThirdPartyNotices.txt └── index.yaml /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .idea 3 | .vscode 4 | -------------------------------------------------------------------------------- /00_Javascript Development Tools/00_JavaScript Coding Tools/00_What is JavaScript?/00_.md: -------------------------------------------------------------------------------- 1 | JavaScript is a high-level, interpreted language. It can be run on the browser or on your computer locally. JavaScript can be coded anywhere, even on a simple text editor or notepad feature on the laptop. However, in order to enhance programming experience, many tools such as editors and debuggers exist to make JavaScript coding easier and more interactive for a user. 2 | -------------------------------------------------------------------------------- /00_Javascript Development Tools/00_JavaScript Coding Tools/00_What is JavaScript?/01_Multiple Choice.prob.md: -------------------------------------------------------------------------------- 1 | >>JavaScript can be run on ____<< 2 | 3 | ( ) Windows {{Incorrect because JavaScript can be run on Mac.}} 4 | ( ) Browser {{Incorrect because JavaScript can be run locally on a computer.}} 5 | ( ) Mac {{Incorrect because JavaScript can be run on Windows.}} 6 | ( ) All operating systems {{Incorrect because JavaScript can be run on the browser.}} 7 | (x) All of the above {{Correct because JavaScript can be run on both browser and locally on any operating system.}} 8 | 9 | ||JavaScript supports all operating systems. || 10 | -------------------------------------------------------------------------------- /00_Javascript Development Tools/00_JavaScript Coding Tools/00_What is JavaScript?/index.yaml: -------------------------------------------------------------------------------- 1 | url_name: yAXylSCGpnnd 2 | display_name: What is JavaScript? 3 | -------------------------------------------------------------------------------- /00_Javascript Development Tools/00_JavaScript Coding Tools/01_Editors and IDEs/index.yaml: -------------------------------------------------------------------------------- 1 | url_name: vOxnQkqwMOeq 2 | display_name: Editors and IDEs 3 | -------------------------------------------------------------------------------- /00_Javascript Development Tools/00_JavaScript Coding Tools/index.yaml: -------------------------------------------------------------------------------- 1 | url_name: NImOhwsRnEdf 2 | display_name: JavaScript Coding Tools 3 | graded: true 4 | format: Practice 5 | -------------------------------------------------------------------------------- /00_Javascript Development Tools/01_Debugging tools/00_Debugging/00_.md: -------------------------------------------------------------------------------- 1 | There is no universal way of debugging client-side JavaScript. The only way to debug client-side JavaScript is through the browser. Server-side JS can be debugged in several ways, including VS Code, NodeJS, and the V8 Inspector. Fortunately all browsers have their own debugging tool/plugin that makes it easier: 2 | 3 | - Firefox has Firebug 4 | - Chrome and Opera have Web developer mode 5 | - Internet Explorer has F12 -------------------------------------------------------------------------------- /00_Javascript Development Tools/01_Debugging tools/00_Debugging/01_Multiple Choice.prob.md: -------------------------------------------------------------------------------- 1 | >>How do you debug client-side JavaScript? << 2 | 3 | ( ) There are no methods {{Incorrect because the only way to debug client-side JavaScript is through the browser.}} 4 | (x) Using a browser {{Correct because the only way to debug client-side JavaScript is through the browser.}} 5 | ( ) Using an IDE {{Incorrect because the only way to debug client-side JavaScript is through the browser.}} 6 | ( ) Using a text editor{{Incorrect because the only way to debug client-side JavaScript is through the browser.}} 7 | ( ) Either using a browser, IDE, or a text editor {{Incorrect because the only way to debug client-side JavaScript is through the browser.}} 8 | 9 | ||Client-side JavaScript can be debugged. || -------------------------------------------------------------------------------- /00_Javascript Development Tools/01_Debugging tools/00_Debugging/index.yaml: -------------------------------------------------------------------------------- 1 | url_name: RIKtQhGqnwNL 2 | display_name: Debugging 3 | -------------------------------------------------------------------------------- /00_Javascript Development Tools/01_Debugging tools/index.yaml: -------------------------------------------------------------------------------- 1 | url_name: KdiLRpmvibsP 2 | display_name: Debugging tools 3 | graded: true 4 | format: Practice 5 | -------------------------------------------------------------------------------- /00_Javascript Development Tools/02_Utilities/00_Tools and Utilities/index.yaml: -------------------------------------------------------------------------------- 1 | url_name: SbaIQmMyvnkV 2 | display_name: Tools and Utilities 3 | -------------------------------------------------------------------------------- /00_Javascript Development Tools/02_Utilities/index.yaml: -------------------------------------------------------------------------------- 1 | url_name: ZOtRXrGPBzDJ 2 | display_name: Utilities 3 | graded: true 4 | format: Practice 5 | -------------------------------------------------------------------------------- /00_Javascript Development Tools/index.yaml: -------------------------------------------------------------------------------- 1 | url_name: SFZwSiykwYpR 2 | display_name: Javascript Development Tools 3 | -------------------------------------------------------------------------------- /01_Introduction to JavaScript Development/00_Dynamic HTML/00_What is DHTML?/00_.md: -------------------------------------------------------------------------------- 1 | DHTML, or Dynamic HTML, consists of HTML, CSS, and JavaScript. DHTML makes it possible for a web page to react and change in response to the user's actions. 2 | 3 | HTML defines Web sites content through semantic tags (headings, paragraphs, lists, …) while CSS defines 'rules' or 'styles' for presenting every aspect of an HTML document. These include font size, font color, background color, background position, layout, etc. JavaScript defines dynamic behavior through programming functions for interaction with the user and to handle events such as clicking a button. -------------------------------------------------------------------------------- /01_Introduction to JavaScript Development/00_Dynamic HTML/00_What is DHTML?/index.yaml: -------------------------------------------------------------------------------- 1 | url_name: MAJMHHNfwqQQ 2 | display_name: What is DHTML? 3 | -------------------------------------------------------------------------------- /01_Introduction to JavaScript Development/00_Dynamic HTML/index.yaml: -------------------------------------------------------------------------------- 1 | url_name: GvEfCgrWzTZJ 2 | display_name: Dynamic HTML 3 | graded: true 4 | format: Practice 5 | -------------------------------------------------------------------------------- /01_Introduction to JavaScript Development/01_Intro to JavaScript/00_Why use JavaScript?/00_.md: -------------------------------------------------------------------------------- 1 | JavaScript is a front-end scripting language developed by Netscape for dynamic content. JavaScript is: 2 | - lightweight, but with limited capabilities 3 | - can be used as object-oriented language 4 | - embedded in your HTML page 5 | - interpreted by the Web browser 6 | 7 | JavaScript's client-side, mobile and desktop technology is simple and flexible. It can access and edit all the elements of an HTML document using the HTML DOM. -------------------------------------------------------------------------------- /01_Introduction to JavaScript Development/01_Intro to JavaScript/00_Why use JavaScript?/index.yaml: -------------------------------------------------------------------------------- 1 | url_name: tlkwsJtISnJS 2 | display_name: Why use JavaScript? 3 | -------------------------------------------------------------------------------- /01_Introduction to JavaScript Development/01_Intro to JavaScript/01_JavaScript Advantages/00_.md: -------------------------------------------------------------------------------- 1 | JavaScript allows interactivity such as: 2 | - Implementing form validation 3 | - React to user actions, e.g. handle keys 4 | - Changing an image just by moving your mouse over it 5 | - Sections of a page appearing and disappearing 6 | - Content loading and changing dynamically 7 | - Performing complex calculations 8 | - Custom HTML controls, e.g. scrollable table 9 | - Implementing AJAX functionality -------------------------------------------------------------------------------- /01_Introduction to JavaScript Development/01_Intro to JavaScript/01_JavaScript Advantages/index.yaml: -------------------------------------------------------------------------------- 1 | url_name: UcmnIvotlicE 2 | display_name: JavaScript Advantages 3 | -------------------------------------------------------------------------------- /01_Introduction to JavaScript Development/01_Intro to JavaScript/02_JavaScript Engines/00_.md: -------------------------------------------------------------------------------- 1 | There are different JavaScript engines depending on the browser you use. For example, Chrome has V8, Internet Explorer has Chakra, FireFox as Spidermonkey, and Safari has JavaScriptCore. All of these JavaScript engines helps your browser by supporting memory management, garbage collection, in-time compilation and much more. 2 | -------------------------------------------------------------------------------- /01_Introduction to JavaScript Development/01_Intro to JavaScript/02_JavaScript Engines/index.yaml: -------------------------------------------------------------------------------- 1 | url_name: EMtYhToLnmRG 2 | display_name: JavaScript Engines 3 | -------------------------------------------------------------------------------- /01_Introduction to JavaScript Development/01_Intro to JavaScript/03_Using JavaScript Code/00_.md: -------------------------------------------------------------------------------- 1 | When using JavaScript with HTML, the JavaScript code can be placed in a `