Difference between undefined and undeclared in Javascript

  • In JavaScript, there is a difference between a variable that is undefined and a variable that is undeclared. Understanding the difference can help you write more robust and error-free JavaScript code.
  • An undeclared variable is a variable that has not been declared in the current scope. This means that the variable has not been defined using var, let, or const. When you try to reference an undeclared variable, JavaScript will throw a ReferenceError:

    console.log(foo); // ReferenceError: foo is not defined

  • An undefined variable, on the other hand, is a variable that has been declared but has no value assigned to it. When you reference an undefined variable, JavaScript will not throw an error, but will instead return undefined:

    let foo;
    console.log(foo); // Output: undefined

  • Note that if you try to access a property of an undefined variable, JavaScript will throw a TypeError:

    let obj;
    console.log(obj.foo); // TypeError: Cannot read property 'foo' of undefined

  • In general, it's good practice to always declare your variables using var, let, or const to avoid creating undeclared variables. You can also use the typeof operator to check if a variable is undefined:

    let foo;
    if (typeof foo === 'undefined') {
        console.log('foo is undefined');
    } else {
        console.log('foo is defined');
    }

No comments:

Post a Comment