Geek Slack

Introduction to JavaScript
    About Lesson



    JavaScript Let


    JavaScript let

    The let keyword is used to declare variables in JavaScript. It was introduced in ES6 (2015) and provides block scope, unlike var which has function scope.

    1. Declaring Variables with let

    You can declare a variable using the let keyword.

    Example:

    let x = 5;
    let y = 6;
    let z = x + y;
    
    console.log(z); // Output: 11

    2. Block Scope

    Variables declared with let have block scope, meaning they are only available within the block they are defined in, such as inside an if statement or a loop.

    Example:

    if (true) {
        let blockScoped = "I am block scoped";
        console.log(blockScoped); // Output: I am block scoped
    }
    // console.log(blockScoped); // This will cause an error

    3. Re-declaring Variables

    Variables declared with let cannot be re-declared in the same scope, helping to prevent errors.

    Example:

    let a = 10;
    // let a = 20; // This will cause an error
    
    if (true) {
        let a = 30; // This is a new variable within the block scope
        console.log(a); // Output: 30
    }
    
    console.log(a); // Output: 10

    4. Variable Hoisting

    Unlike var, variables declared with let are not hoisted to the top of their block. This means you cannot use a let variable before it is declared.

    Example:

    // console.log(hoistedLet); // This will cause an error
    let hoistedLet = "This variable is not hoisted";
    
    console.log(hoistedLet); // Output: This variable is not hoisted

    5. Temporal Dead Zone

    The temporal dead zone (TDZ) is the time between the entering of a scope and the actual declaration of the variable. Accessing the variable in this zone results in a ReferenceError.

    Example:

    function tdzExample() {
        // console.log(tempVar); // ReferenceError: Cannot access 'tempVar' before initialization
        let tempVar = "I am not accessible before my declaration";
        console.log(tempVar); // Output: I am not accessible before my declaration
    }
    
    tdzExample();

    6. Best Practices

    • Use let for variables that will change values.
    • Always declare variables at the top of their scope to avoid confusion.
    • Avoid using var in modern JavaScript, prefer let and const for better scope management and readability.

    By following these guidelines, you can write cleaner, more maintainable JavaScript code.