
Install and configure essential development tools, download and use exercise files from git repositories, and learn the basics of git versus GitHub, including installing Visual Studio Code and NodeJS.
If you are using Windows I recommend you to install either Cmder application or git bash
Set up Visual Studio Code, create a test folder, and add an index.js file. Install Live Server, Prettier, and Bracket Pair Colorizer; customize themes and icons; enable live updates.
Launch Node.js, verify node and npm versions, run JavaScript in Node.js to log 'Hello from Node.js', then explore index.js execution and prepare for Git-based repository exercises.
Master git concepts by reverting to the initial commit with git checkout, exploring detached head, and managing branches like master and Branch1 through commits, logs, and branch switching.
Clone a git repository from GitHub using https, then create local branches that track remote branches. Switch between branches with git checkout --track and view files in Visual Studio Code.
Learn to manage git repositories with sourcetree, connect to GitHub or BitBucket, and work with local and remote branches through fetch, checkout, and prune.
Explore JavaScript basics from the ground up by embedding scripts in HTML, using external JavaScript files, launching a server in Visual Studio Code, adding a favicon, and tackling first challenges.
Explore how websites use JavaScript by examining HTML structures, script tags, and external files in Chrome using developer tools, network views, and cache controls to understand browser rendering.
Create your first HTML file with Emmet and view it locally by enabling Go Live in Visual Studio Code using Live Server at localhost:5500.
Add a favicon to the html project by downloading a 256 px image from Wikimedia, saving it as favicon.png, and linking it in index.html with rel icon and type image/png.
Embed javascript directly into the html file using script tags, with console.log examples and live server auto-reload. Create an external javascript file and reference it in html.
Learn git branches management through live demos of status, staging, committing, and switching branches, with practical examples using index.html and favicon.png.
Create a separate JavaScript file, reference it from index.html using a script src attribute, and see the console log 'Hello from external JavaScript file' appear as the external file runs.
Create an external JavaScript file other.js and reference it in index.html to log console messages. The first comes from the external file, the second prints after it during the challenge.
Create and load an external script other.js alongside index.js, using script tags with proper relative paths and ordering to ensure sequential console messages appear in the browser.
Learn to run JavaScript directly in the browser console using console.log and alert, explore function calls, arguments, and the idea that almost everything is an object.
Explore how almost everything in JavaScript is an object, learn value types, primitive and reference types, declare and assign variables with let, var, and const in a dynamically typed language.
Explore primitive value types in javascript, including strings, numbers, booleans, null, undefined, and symbols. Practice in the browser console with string literals, numbers including infinity and NaN, and template literals.
Explore the reference type object in JavaScript, inspect the prototype chain and __proto__ properties, and learn how object literals create instances of the global Object.
Learn how to declare and assign variables in JavaScript using var, let, and const, understand when values can be reassigned, and recognize undefined and ReferenceError.
Declare a constant myObject as an empty object and log it to the console, illustrating camelCase naming and that const prevents reassignment for a reference type object with __proto__.
Declare and reuse variables in JavaScript by creating x and y, building myObject with a and b, then define anotherObject with newA, b, and c to illustrate dynamic typing.
Explore dynamic typing in JavaScript by declaring variables with let, var, or const. See how types change at runtime among undefined, number, boolean, and object, including null-related errors.
Explore how JavaScript objects are reference types, structured as name-value pairs with properties and methods, including functions as values. Examine copying objects and the browser global objects: Window and Global.
Explore how JavaScript treats almost everything as an object, a collection of name-value pairs, and how objects are created with object literals and have properties.
Explore how to access, add, modify, and delete object properties using dot and bracket notation, including nested objects like my city and its info.
Explore JavaScript objects using let and const, create object literals, add, modify, and delete properties with dot notation and the delete operator, and inspect results in the console.
Practice with objects in JavaScript to see that they are reference types. Copying an object shares memory and dot or bracket notation reveals property access and dynamic names.
Explore global objects in browsers and Node.js by examining window and global. Learn how their properties and nested objects like console expose methods such as console.log via dot notation.
Learn how functions in JavaScript act as reusable blocks of code with parameters, including function declarations, anonymous functions, callbacks, and object methods.
Learn that functions are objects, master function declaration syntax, pass parameters and arguments, use return to output values, and grasp function scope and calls in JavaScript.
Explore function scope, parameter visibility, and reuse of names across functions, then master return behavior and how return stops execution in JavaScript.
Explore practical function challenges in the JavaScript bootcamp: implement mount to multiply three parameters and print results to the console, practice const usage, and learn string concatenation with return values.
Declare outer function with two parameters, nest inner function that returns the square of its input, sum the two parameters, and log the inner function result.
Explore the difference between function declarations and anonymous function expressions, including usage as standalone functions, variables, and as callback arguments in JavaScript.
Practice function expressions and the built-in functions set timeout, set interval, and clear interval to print five sequential console messages, with no further messages after the fifth.
Implement a two-second interval to log numbered messages using a function expression, capture the interval handle, and stop it after ten seconds with clearInterval inside a setTimeout.
Explore unary and binary operators in JavaScript, learn about arithmetic, logical, and comparison groups, and compare infix, prefix, and postfix notations, precedence, and associativity.
Explore how JavaScript operators act as built-in functions, grouped into arithmetic, logical, and assignment operators; see the comma and plus operators and how precedence affects results and return values.
Master arithmetic operators in JavaScript, including operands, prefix/infix/postfix notation, and operator precedence and associativity, with hands-on practice using plus, minus, multiply, divide, and string concatenation.
Explore comparison operators in JavaScript, including less than, greater than, and their equal and inequality forms, and learn how strings compare lexically and how equality differs from strict equality.
Learn the logical or operator in JavaScript, its short-circuit evaluation, and how falsy values like empty strings, zero, null, undefined, NaN, and false influence defaults like city or default city.
Explore operator precedence and associativity through practical examples, showing how multiplication precedes addition, how grouping with parentheses changes results, and how right-to-left assignment works.
Test your understanding of JavaScript operators by applying precedence and associativity, using unary plus for number conversion, and calculating remainders with console outputs.
Master how JavaScript logical operators evaluate with precedence and associativity, how short-circuit operators stop at the first true or false value, and how plus equal and other assignment operators behave.
Clarify the difference between expressions and statements in JavaScript, showing how expressions produce values (like function calls or assignments) and how statements perform actions (like return), with semicolon guidelines.
Learn the distinction between expressions and statements in JavaScript, including expression statements, assignment expressions, and the roles of lvalue and rvalue, with examples of side effects.
Clarify the distinction between expressions and statements in JavaScript, explain how semicolons create expression statements, and compare if, for, and function calls.
Explore the difference between expressions and statements in JavaScript, learn when to use semicolons, and practice variable declarations, function returns, and if statements through practical examples.
Explore JavaScript scopes, including global, function, and block scope, and learn how variables and parameters behave inside and outside the function, the role of strict mode with use strict.
Explore the life cycles of global and function-scoped variables with let, tracing how B and A differ across scopes, and introducing scope chain, pure functions, undeclared variables, and strict mode.
Explore global and function scope in JavaScript, showing how var becomes a window property while let and const stay non-global; examine parameters, local scope, and the scope chain.
Explore function scope and global scope in JavaScript through tasks about A, B, and D, then analyze strict mode and setTimeout callbacks to reinforce scope concepts.
Explore how arrays differ from objects, with numeric indices and methods like push and pull. Learn to create, add, delete, and modify array elements in the JavaScript basics module.
Explore how arrays in JavaScript are special objects with numeric properties, created via array literals or the new keyword, and learn to access, modify, and manage their length and elements.
Master arrays in JavaScript, from empty arrays and literal notation to adding elements, with length and prototype concepts, and accessing values via dot and bracket notation.
This course covers everything you need to know about JavaScript and become either Frontend Web developer, or Full-stack Web Developer, or Backend developer.
This course includes more than 70 CHALLENGES and all exercise files are available in Git repositories.
We will start from the very beginning and you will learn fundamentals and basic concepts of JavaScript.
Than you will learn new features included in ES6, ES7 etc.
Also we will dive into the Node.js - environment for JavaScript code execution and you will understand what is the difference between Web Browser and Node.js.
In separate sections we will discuss Babel, NPM, Webpack and MongoDB.
Also you will learn most popular JavaScript framework - React.
JavaScript Bible was designed for developers with different levels of JavaScript knowledge.
If you are BEGINNER in JavaScript - start with very first section called JavaScript Basics.
In case you have SOME experience with JavaScript - jump directly in the sections where I cover ES6 topics such as rest/spread parameters, arrow functions, ES6 Classes etc.
If you are experienced MIDDLE or SENIOR developer with years of JavaScript development background - jump directly into the Challenges and test your knowledge. Each challenge has task and solution in separate Git branches.
All videos have different labels:
LECTURE: in those videos I explain different features and concepts of the language. Main main goal in those videos is to teach you HOW specific feature work under the hood. I don't teach HOW TO USE feature.
Instead I teach you WHY and HOW specific feature works.
PRACTICE: here I will dive into the coding and show you different real-world examples of the usage of specific feature. Usually I will present to you several examples for each specific feature. I strongly recommend you to follow me in those videos and code along with me.
CHALLENGE: each challenge (except simple and short challenges) has START and FINISH branches with task and solution. PLEASE don't skip challenges even if you are already familiar with the topic. Try to solve each challenge yourself.
DEMO: in some videos I will demonstrate you examples where you don't necessarily need to follow me and code along with me
If you want to become an Expert in JavaScript, please join this course now!
See you onboard!