Javascript scope

Created By: chatGPT

JavaScript scope determines the accessibility of variables, objects, and functions in your code during execution. Understanding scope is essential as it affects how variables are accessed and manipulated throughout your code. There are two main types of scope: global scope and local scope.Variables declared in the global scope are accessible from any part of the code, whereas local scope confines variable access to a specific function or block.
Consider the following example to illustrate global and local scopes:
let globalVar = 'I am global';

function localScopeExample() {
    let localVar = 'I am local';
    console.log(globalVar);  // Accessible
    console.log(localVar);   // Accessible
}

localScopeExample();
console.log(globalVar);  // Accessible
console.log(localVar);   // Error: localVar is not defined
In the code above, globalVar is accessible both inside and outside the localScopeExample function. However, localVar is only accessible within that function.
Block scope is another important concept introduced in ES6, which allows you to define variables that are only accessible within a specific code block. You can create block-scoped variables using let and const. Here's an example:
if (true) {
    let blockScopedVar = 'I am block scoped';
    console.log(blockScopedVar);  // Accessible within this block
}

console.log(blockScopedVar);  // Error: blockScopedVar is not defined
The variable blockScopedVar can only be accessed within the if statement. This behavior helps to prevent accidental modifications and conflicts in your code.
Moreover, functions can also create their own scope. When a function is defined within another function, it forms a nested function. The nested function has access to its own local variables as well as the variables of its parent function, which is known as closure:
function outerFunction() {
    let outerVar = 'I am outer';

    function innerFunction() {
        let innerVar = 'I am inner';
        console.log(outerVar);  // Accessible
        console.log(innerVar);   // Accessible
    }

    innerFunction();
}

outerFunction();
In this example, innerFunction can access outerVar, demonstrating how closures work, allowing access to outer function variables from the inner function.In summary, understanding JavaScript scope is crucial for writing clean, efficient code. It helps you manage where and how data is accessed, which is fundamental for good programming practices.
Introduction And SetupVariablesData TypesMethodsControl FlowFunctionsOperatorsData StructuresCommentsSyntaxEvent HandlingError HandlingPrimitive Data TypesReference Data TypesConstLetVarStringNumberBooleanNullUndefinedSymbolObjectArrayTemplate LiteralsArrow FunctionsRegular FunctionsCallApplyBindAsync FunctionsPromisesCallback FunctionsIf StatementElse StatementSwitch StatementFor LoopWhile LoopDo While LoopFor EachBreak StatementContinue StatementTry CatchThrowFinallyScopeClosureThis KeywordPrototypesInheritanceConstructor FunctionsClass SyntaxStatic MethodsGettersSettersSpread OperatorRest OperatorDestructuring AssignmentMap MethodFilter MethodReduce MethodEvent ListenersDom ManipulationInnerHTMLQuerySelectorAddEventListenerPreventDefaultStopPropagationTimeoutsIntervalsJsonLocal StorageSession StorageRegexMath ObjectDate ObjectString MethodsArray MethodsObject MethodsDeep CloningShallow CloningCallback HellPromise ChainingAsync AwaitMap Vs ForEachFilter Vs ReduceNullish Coalescing OperatorOptional ChainingTypeof OperatorInstanceof OperatorStrict EqualityLoose Equality