javascript variable scope in if statement

Understanding JavaScript Variable Scope in If Statement

JavaScript is a programming language that is widely used for creating interactive web pages. One of the most important concepts in JavaScript is variable scope, which refers to the area of the program where a variable can be accessed. In simple terms, scope determines the lifetime of a variable and where it can be used within your code.

Global Scope

A variable declared outside of any function has a global scope. This means that it can be accessed from anywhere in your code, including within an if statement.

  var globalVar = "I am a global variable";
  if (true){

Local Scope

A variable declared inside a function has a local scope. This means that it can only be accessed within that function and not outside of it.

  function localScope(){
      var localVar = "I am a local variable";
      if (true){
  localScope(); //Output: "I am a local variable"

Block Scope

Starting from ES6, JavaScript also has block-level scope. A block is any code contained within curly braces {}.

  function blockScope(){
      if (true){
          let blockVar = "I am a block-level variable";
      console.log(blockVar); //Output: Uncaught ReferenceError: blockVar is not defined


Another important concept to understand is hoisting, which refers to the JavaScript behavior of moving variable and function declarations to the top of their respective scopes. This means that you can use a variable before it is declared, but it will be undefined until it is actually assigned a value.

  console.log(myVar); //Output: undefined
  var myVar = "I am hoisted";


Understanding variable scope in JavaScript can be tricky, but it's crucial for writing efficient and error-free code. Remember to always declare your variables correctly and keep their scope in mind when accessing them within your code.

Subscribe to The Poor Coder | Algorithm Solutions

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
[email protected]