Javascript arrow functions

Created By: chatGPT

In JavaScript, arrow functions provide a more concise syntax for writing function expressions. They are defined using the => syntax and do not bind their own this, making them more predictable in certain contexts.
const add = (a, b) => a + b;

const square = x => x * x;

const greet = () => 'Hello, World!';
Arrow functions can also be implicit returns, allowing you to write a function without curly braces when returning a single expression. However, if you need to execute multiple statements, you have to use curly braces and the return keyword.
const multiply = (a, b) => {
    const result = a * b;
    return result;
};
Arrow functions handle the context of this differently compared to regular functions. This means that they can be particularly useful when used in methods that need to preserve the enclosing context.
class Counter {
    constructor() {
        this.count = 0;
    }

    increment = () => {
        this.count++;
        console.log(this.count);
    };
}

const counter = new Counter();
counter.increment(); // Outputs: 1

You can use arrow functions in array methods such as map, filter, and reduce for cleaner syntax and readability. For example:

const numbers = [1, 2, 3, 4];
const squaredNumbers = numbers.map(num => num * num);
console.log(squaredNumbers); // Outputs: [1, 4, 9, 16]
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