14 Fundamental JavaScript Concepts Explained Simply

14 Fundamental JavaScript Concepts Explained Simply

Hello everyone! For today’s post, I’ve decided to do a summary map of the fundamentals of JavaScript. It’s made with the beginner in mind and basically summarizes the main foundational concepts without you needing to spend hours reading up on everything.

The point is to give you a gist of everything and let you get started quicker. This is not, by all means, a full guide. It’s only part of a bigger picture which I’m working on constructing.

Alternatively, it can be used as a reference guide to quickly get you started. Bite-sized explanations are posted below. Hope you like!

1. Code Structure

At its simplest, JavaScript is made up of a series of statements and semi-colons.

A statement is like a sentence — but in code.

For example, this is a statement:

alert('Say hi');

Semi-colons are not compulsory and can be committed when there is a physical line break in between. It’s the equivalent of a full stop.

But sometimes, line breaks do not guarantee that the statement is done. Using + signs can act as a connector between lines.

For example:

console.log('This ' + name + ' is gibrish');

2. “use strict”

For a long time, JavaScript didn’t have to worry about backward compatibility. Why? Because feature releases never overlapped — until it did.

In 2009, ECMAScript 5 (ES5) was released and new features modified some of the existing ones. By default, modifications are not applied unless you enable it using "use strict"

"use strict" must be placed at the top of your JavaScript code or else it won’t get applied.

Nowadays, always "use strict" because we don’t want to use the older implementations of JavaScript.

3. variables

Variables are placeholders for information. Think of it as a memory bucket that holds your data.

Use the keyword let to declare a variable and give it a name.

This will initialize it. You can assign a value to it using =

If you don’t assign anything to it, the default is set to undefined — which means that it’s been initialized but there’s absolutely nothing in the bucket. In short, it just means that it hasn’t been set, ever.

This is different from null

With null , a developer has to manually assign it. In a way, it’s physically acknowledging the fact that your code has purposely made sure that the bucket is empty and that you just haven’t forgotten to fill it or that something went wrong in the process.

In older scripts, var is used. The way they behave impacts on your final output. I sort of wrote about it here. Feel free to check it out if you’re interested.

4. data types

There are not many data types in JavaScript when compared to other languages. Here’s the comprehensive list and what they are:


let someNumber = 2984;
someNumber = 29.84;

No “quote marks” for numbers. Just the plain old straight numbers. You can do both integers and floating-point numbers. Basic operators work on numbers.

There’s also a special infinity number available. You just need to do 1/0 — so, one divided zero. This value is deemed to be the biggest number of all time and can not be viewed as the smaller outcome.

If you get NaN — it means that you’ve hit a computational error. It also means that you’re trying to do a mathematical operation on something that doesn’t make sense like dividing a string text with a number.


In JavaScript, the biggest number it can do is about 16 digits long. For most cases, our applications can survive on less than 16 digits. However, every now and then we might need it for really big numbers like cryptography.

A BigInt is created by adding an n at the end of the number.

const someMassiveNumber = 1234567890123456789012345678901234567890n;


A string is a text variable, indicated by it being surrounded by quotes. There are 3 types of quotes you can use — 'single quotes' , "double quotes" and ``back ticks

Double and single makes no difference in JavaScript. Backticks are more for extending the functionality of a piece of string and are used to embed variables using ${ }

For example:

let cat = "Tibbers";
console.log( `Hi, ${cat}` );

If you used quote marks in the example above, it just becomes a normal string.


Will print out either true or false

This is often the result of a comparison of some sort.


It just means “nothing”. Non of that null pointer stuff you see in other languages.


undefined simply means the value hasn’t been assigned yet. Nothing fancy.


Other types of data types are called primitives because they’re simple. Objects are things that allow you to set more than just one item to it.

5. type conversion

Sometimes, you need to switch between the different types for whatever reason. Here’s how you do it.

let someFakeBoolean = true;
someFakeBoolean = String(someFakeBoolean);

//using String() will convert your variable into a string
let someFakeNumber = "3872";

someFakeNumber = Number(someFakeNumber);
//using Number() will convert your string into a number

Please take note that converting random text into numbers doesn’t work, and it doesn’t make any sense, in general, to do so. You’ll end up with NaN

Boolean() will turn any value into a true or false output. Anything “empty” like 0 , null, undefined, and NaN will return false. Anything else will return true

6. operators

These operators are not JavaScript specific and are generally supported the same way in most programming languages. Here’s the list:

AND (&)  OR (|)  XOR (^)  NOT (~)  LEFT SHIFT (<<)  RIGHT SHIFT (>>)  ZERO-FILL RIGHT SHIFT (>>>)

When using these operators, just say them out loud and they basically do what you’re saying.

For example:

printLine(line, id){
 if(line & id){ //if both exists, run this code }

7. comparisons

Think mathematical comparisons. That’s what these are:

  • Greater/less than: a > b, a < b.
  • Greater/less than or equals: a >= b, a <= b.
  • Equals: a == b (single = sign is an assignment rather than a comparitors).
  • Not equals. a != b.

8. alert, prompt, confirm

These are the popups that go ‘ding’


Prompts take two arguments — the question and the answers.

let promptMe = prompt('your question here', ['blue pill', 'red pill']);

alert(`You've taken the ${promptMe}`);

Confirm means you need to click on the accept button for the code to return true.

let isOver18 = confirm("Are you over 18?");

alert( isOver18 ); // true if OK is pressed

9. conditionals

The ever so famous if statement is a backbone of beginning JavaScript projects. The idea is simple, if something satisfies the conditions, run the code.

This is what it looks like:

if (true) alert('woot!');

The condition always returns a boolean as the final result. So you can have mathematical comparisons, checks and anything else you want in there, as long as it evaluates to a boolean.

In addition to the if statement, there’s else if and else

else if extends it with another if statement. else simply ends it with a catch all kind of clause.

Here’s what it looks like:

   //this code won't run because it returned false 
}else if(false){
   //this also won't run
}else if(false){
   //still nope
}else {
   //final catch all

10. loops

Think of it as a repeated if statement without having to manually write out the same thing every time or do multiple calls to get it to run.

It has a condition and will only stop running the code once the condition returns false

let i = 0;
  //some code here
  //don't forget to set your exit clause by modifying the condition to return false. Most people just use i++

“do…while” loops turns it the syntax upside down and checks the condition after it’s run the code. Why? Because sometimes you just need to run the code at least once.

Here’s what it looks like:

  //some code here

11. switch statements

Switch statements basically give you the ability to write options.

Here’s what it looks like:

   case 'optionOne' :    
     //your code here   
   case 'optionTwo':   
     //your code here   
   case 'optionThree':   
     //your code here   
     //your fallback code here 

You can also group cases so you don’t have to write the same output more than once.

   case 'optionOne' :    
   case 'optionTwo':   
     //your code here   
   case 'optionThree':   
     //your code here   
     //your fallback code here 

12. functions

Functions are like the building blocks of a JavaScript application, library, framework and any ‘program’ written in the scripting language.

There are built in functions that we’ve already encountered before like alert() and prompt()

You can write you own functions like this:

function functionNameHere(){
  //your code here

And then you just call it using the function name:


13. function expressions

There’s more than one way to write a function. Here are some ways you can write it:

function yourFunctionName(){
 // some code here

let anotherFunction = function(){}

14. arrow functions

An arrow function is just syntax to make writing your functions shorter. Here’s what it looks like:

let functionNameHere = (argumentsHere) => //do something

Arrow functions usually sit on one line but multiple lines are possible with the help of curly { }

Here’s what it looks like:

let cat = () => { 
   //this is 
   //a multi-line 
   return someValue; //is required. Can just be a straight return; 

When using curl { } with arrow functions, you need to also use return to exit out of it.

And that’s basically it for this piece — for how.

I hope you found it useful!

Want to sponsor matcha.fyi? You can have your brand featured right here. Let's connect and chat about it.