āĻĢāĻžāĻ‚āĻļāύ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ

āĻĢāĻžāĻ‚āĻļāύ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύāϗ⧁āϞāĻŋ āĻāĻŽāύ āĻĢāĻžāĻ‚āĻļāύāϗ⧁āϞāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āϝ⧇āĻ–āĻžāύ⧇ āĻāĻ•āϟāĻŋ āĻ…āĻ­āĻŋāĻŦā§āϝāĻ•ā§āϤāĻŋ āĻĒā§āϰāĻ¤ā§āϝāĻžāĻļāĻŋāϤ āĻšāϝāĻŧāĨ¤ āφāĻĒāύāĻŋ āĻĒā§āϰāĻžāϝāĻŧāĻļāχ āĻāĻ•āϟāĻŋ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ⧇āϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŋāϤ āĻŽāĻžāύ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻĢāĻžāĻ‚āĻļāύ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ⧇āϰ āϏāĻŽā§āĻŽā§āĻ–ā§€āύ āĻšāĻŦ⧇āύāĨ¤ āϝāĻĻāĻŋāĻ“ āĻāĻ•āϟāĻŋ āĻĢāĻžāĻ‚āĻļāύ āĻ˜ā§‹āώāĻŖāĻžāϰ āϜāĻ¨ā§āϝ āϏāĻ°ā§āĻŦāĻĻāĻž āĻāĻ•āϟāĻŋ āύāĻžāĻŽā§‡āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāϝāĻŧ, āφāĻĒāύāĻŋ āĻļāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀āϕ⧇ āĻŦāĻžāĻĻ āĻĻāĻŋāϝāĻŧ⧇ āĻāĻŦāĻ‚ āϐāĻšā§āĻ›āĻŋāĻ• āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ āϏāĻŽāĻ¨ā§āĻŦāĻŋāϤ āĻāĻ• āĻœā§‹āĻĄāĻŧāĻž āĻŦāĻ¨ā§āϧāύ⧀ āϏāĻš function āϕ⧀āĻ“āϝāĻŧāĻžāĻ°ā§āĻĄ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰ⧇ āĻŦ⧇āύāĻžāĻŽā§€ āĻĢāĻžāĻ‚āĻļāύ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĢāĻžāĻ‚āĻļāύ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ:

const myVariable = function() { };

āϤāĻžāϰāĻĒāϰ⧇ āφāĻĒāύāĻŋ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ⧇āϰ āĻļāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏ⧇āχ āĻĢāĻžāĻ‚āĻļāύ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύāϗ⧁āϞāĻŋāϕ⧇ āĻ•āϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ:

const myVariable = function() {
    console.log( "This is my function." );
};

myVariable();
> "This is my function."

āφāĻĒāύāĻŋ āĻĢāĻžāĻ‚āĻļāύ āĻ˜ā§‹āώāĻŖāĻžāϰ āĻ…āύ⧁āϰ⧂āĻĒ āĻāĻ•āϟāĻŋ āϏāĻŋāύāĻŸā§āϝāĻžāĻ•ā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āύāĻžāĻŽāϝ⧁āĻ•ā§āϤ āĻĢāĻžāĻ‚āĻļāύ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĢāĻžāĻ‚āĻļāύ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ:

const myVariable = function myFunction() {
    console.log( "This is my function." );
};

myVariable();
> "This is my function."

āϝāĻžāχāĻšā§‹āĻ•, āĻĢāĻžāĻ‚āĻļāύ āĻ˜ā§‹āώāĻŖāĻžāϰ āĻŦāĻŋāĻĒāϰ⧀āϤ⧇, āĻāĻ•āϟāĻŋ āύāĻžāĻŽāϝ⧁āĻ•ā§āϤ āĻĢāĻžāĻ‚āĻļāύ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻĢāĻžāĻ‚āĻļāύ⧇āϰ āĻŽāĻ§ā§āϝ⧇āχ āĻĢāĻžāĻ‚āĻļāύ āύāĻžāĻŽā§‡āϰ āĻĻā§āĻŦāĻžāϰāĻž āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇:

const myVariable = function myFunction() {
  console.log( `I'm a ${ typeof myFunction }.`);
};

typeof myFunction;
> "undefined"

typeof myVariable;
> "function"

myVariable();
> "I'm a function."

āĻĢāĻžāĻ‚āĻļāύ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ⧇āϰ āϏāĻžāĻĨ⧇ āϝ⧁āĻ•ā§āϤ āύāĻžāĻŽāϗ⧁āϞāĻŋ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻĄāĻŋāĻŦāĻžāĻ—āĻŋāĻ‚āϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āωāĻĒāϝ⧋āĻ—ā§€āĨ¤ āĻāĻ•āϟāĻŋ āύāĻžāĻŽāϝ⧁āĻ•ā§āϤ āĻĢāĻžāĻ‚āĻļāύ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ āύāĻŋāĻœā§‡āϕ⧇ āĻĒ⧁āύāϰāĻžāĻŦ⧃āĻ¤ā§āϤāĻŋāĻŽā§‚āϞāĻ•āĻ­āĻžāĻŦ⧇ āĻ•āϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇, āϝāĻĻāĻŋāĻ“ āĻāϟāĻŋ āφāϧ⧁āύāĻŋāĻ• āĻŦāĻŋāĻ•āĻžāĻļ⧇ āϖ⧁āĻŦ āϏāĻžāϧāĻžāϰāĻŖ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āύāϝāĻŧ:

const myVariable = function myFunction() {
    console.log( "One second elapsed." );
    setTimeout( myFunction, 1000 );
};

setTimeout( myVariable, 1000 );
> "One second elapsed."
> "One second elapsed."
> "One second elapsed."
â€Ļ

āϤ⧀āϰ āĻĢāĻžāĻ‚āĻļāύ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ

āĻ•āĻŋāϛ⧁ āĻ…āύāĻ¨ā§āϝ āφāϚāϰāϪ⧇āϰ āϏāĻžāĻĨ⧇ āĻŦ⧇āύāĻžāĻŽā§€ āĻĢāĻžāĻ‚āĻļāύ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ āϤ⧈āϰāĻŋ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āĻŦāĻžāĻ•ā§āϝ āĻ—āĻ āύ āĻĒā§āϰāĻĻāĻžāύ⧇āϰ āϜāĻ¨ā§āϝ āϤ⧀āϰ āĻĢāĻžāĻ‚āĻļāύ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ (āĻĒā§āϰāĻžāϝāĻŧāĻļāχ "āϤ⧀āϰ āĻĢāĻžāĻ‚āĻļāύ" āĻŦāĻž, āϖ⧁āĻŦ āĻ•āĻŽāχ, "āĻ˛ā§āϝāĻžāĻŽā§āĻŦāĻĄāĻž āĻĢāĻžāĻ‚āĻļāύ" āĻŦāϞāĻž āĻšāϝāĻŧ) āϚāĻžāϞ⧁ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĨ¤

āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āϤ⧀āϰ āĻĢāĻžāĻ‚āĻļāύ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ āϝ⧇āĻ–āĻžāύ⧇ āĻāĻ•āϟāĻŋ āĻ…āĻ­āĻŋāĻŦā§āϝāĻ•ā§āϤāĻŋ āĻĒā§āϰāĻ¤ā§āϝāĻžāĻļāĻŋāϤ, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻāĻ•āϟāĻŋ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ⧇āϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŋāϤ āĻŽāĻžāύ āĻšāĻŋāϏāĻžāĻŦ⧇āĨ¤ āĻāϟāĻŋāϰ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āϏāĻžāϧāĻžāϰāĻŖ āφāĻ•āĻžāϰ⧇, āĻāĻ•āϟāĻŋ āϤ⧀āϰ āĻĢāĻžāĻ‚āĻļāύ āĻļā§‚āĻ¨ā§āϝ āĻŦāĻž āϤāĻžāϰ āĻŦ⧇āĻļāĻŋ āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ āϏāĻŽāĻ¨ā§āĻŦāĻŋāϤ āĻāĻ•āĻœā§‹āĻĄāĻŧāĻž āĻŽāĻŋāϞ⧇ āϝāĻžāĻ“āϝāĻŧāĻž āĻŦāĻ¨ā§āϧāύ⧀āϰ āϏāĻŽāĻ¨ā§āĻŦāϝāĻŧ⧇ āĻ—āĻ āĻŋāϤ, āĻāĻ•āϟāĻŋ āϤ⧀āϰ āĻāĻ•āϟāĻŋ āĻāĻ•āĻ• āϏāĻŽāĻžāύ āϚāĻŋāĻšā§āύ āĻāĻŦāĻ‚ āĻ…āĻ•ā§āώāϰ⧇āϰ āĻšā§‡āϝāĻŧ⧇ āĻŦāĻĄāĻŧ ( => ) āĻāĻŦāĻ‚ āĻāĻ•āĻœā§‹āĻĄāĻŧāĻž āĻŽāĻŋāϞ⧇ āϝāĻžāĻ“āϝāĻŧāĻž āϕ⧋āρāĻ•āĻĄāĻŧāĻž āĻŦāĻ¨ā§āϧāύ⧀āϰ āϏāĻŽāĻ¨ā§āĻŦāϝāĻŧ⧇ āĻ—āĻ āĻŋāϤāĨ¤ āĻĢāĻžāĻ‚āĻļāύ āĻŦāĻĄāĻŋ āϧāĻžāϰāĻŖāĻ•āĻžāϰ⧀:

const myFunction = () => {};

āĻ•āĻŋāϛ⧁ āĻļāĻ°ā§āϤ⧇āϰ āĻ…āϧ⧀āύ⧇, āφāĻĒāύāĻŋ āϏāĻŋāύāĻŸā§āϝāĻžāĻ•ā§āϏāϟāĻŋāϕ⧇ āφāϰāĻ“ āĻ•āĻŽāĻĒā§āϝāĻžāĻ•ā§āϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϟāĻŋ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āύ, āϤāĻžāĻšāϞ⧇ āφāĻĒāύāĻŋ āĻĒā§āϰāĻžāϰāĻŽā§āĻ­āĻŋāĻ• āĻŦāĻ¨ā§āϧāύ⧀āϗ⧁āϞāĻŋ āϛ⧇āĻĄāĻŧ⧇ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āύ:

const myFunction = myParameter => {};

āφāĻĒāύāĻŋ āϝāĻ–āύ āĻĢāĻžāĻ‚āĻļāύ āĻŦāĻĄāĻŋ āĻāĻ•āϟāĻŋ āĻāĻ•āĻ• āĻ…āĻ­āĻŋāĻŦā§āϝāĻ•ā§āϤāĻŋāϰ āĻŽāĻžāύ āĻĢ⧇āϰāϤ āĻĻāĻŋāϤ⧇ āϚāĻžāύ, āϤāĻ–āύ āĻĢāĻžāĻ‚āĻļāύ āĻŦāĻĄāĻŋāϟāĻŋ āϕ⧋āρāĻ•āĻĄāĻŧāĻž āĻŦāĻ¨ā§āϧāύ⧀āϤ⧇ āφāĻŦāĻĻā§āϧ āύāĻž āĻ•āϰāĻž āĻŦāĻž return āϕ⧀āĻ“āϝāĻŧāĻžāĻ°ā§āĻĄā§‡āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāϝāĻŧ āύāĻž:

const myFunction = () => 2 + 2

myFunction()
> 4

āϤ⧀āϰ āĻĢāĻžāĻ‚āĻļāύ āĻ…āύāĻ¨ā§āϝ āϝ⧇ āϤāĻžāĻĻ⧇āϰ arguments āĻŦāĻž this āĻŽāĻžāύāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āϤāĻžāĻĻ⧇āϰ āύāĻŋāϜāĻ¸ā§āĻŦ āĻĒā§āϰāϏāĻ™ā§āĻ— āύ⧇āχāĨ¤ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇, āϤāĻžāϰāĻž āϤ⧀āϰ āĻĢāĻžāĻ‚āĻļāύ⧇āϰ āϞ⧇āĻ•āϏāĻŋāĻ•ā§āϝāĻžāϞāĻŋ āĻāύāĻ•ā§āϞ⧋āϏāĻŋāĻ‚ āĻāύāĻ­āĻžāϝāĻŧāϰāύāĻŽā§‡āĻ¨ā§āϟ āĻĨ⧇āϕ⧇ āωāĻ­āϝāĻŧ āĻŽāĻžāύāχ āωāĻ¤ā§āϤāϰāĻžāϧāĻŋāĻ•āĻžāϰ āϏ⧂āĻ¤ā§āϰ⧇ āĻĒā§āϰāĻžāĻĒā§āϤ āĻšāϝāĻŧ, āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āĻ•āĻžāϛ⧇āϰ āĻāύāĻ•ā§āϞ⧋āϏāĻŋāĻ‚ āĻĢāĻžāĻ‚āĻļāύ āϝāĻž āϏ⧇āχ āĻĒā§āϰāϏāĻ™ā§āĻ—āϗ⧁āϞāĻŋ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤

function myParentFunction() {
    this.myProperty = true;
    let myFunction = () => {
            console.log( this );
    }
    myFunction();
};

let myInstance = new myParentFunction();
> Object { myProperty: true }

āϤ⧀āϰ āĻĢāĻžāĻ‚āĻļāύ āĻ•āϞ

āϤ⧀āϰ āĻĢāĻžāĻ‚āĻļāύ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āϧāϰāύ⧇āϰ āĻĢāĻžāĻ‚āĻļāύ⧇āϰ āĻŽāϤ⧋ āĻāĻ•āχāĻ­āĻžāĻŦ⧇ āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟāϕ⧇ āφāĻŦāĻĻā§āϧ āĻ•āϰ⧇ āύāĻžāĨ¤ āĻāĻ•āϟāĻŋ āϤ⧀āϰ āĻĢāĻžāĻ‚āĻļāύ⧇āϰ āĻŦāĻĄāĻŋāϤ⧇ āĻāĻ•āϟāĻŋ arguments āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āϏ⧇āχ āϤ⧀āϰ āĻĢāĻžāĻ‚āĻļāύ⧇āϰ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āĻ•āĻžāϛ⧇āϰ āφāĻ­āĻŋāϧāĻžāύāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻ˜ā§‡āϰāĻž āĻĒāϰāĻŋāĻŦ⧇āĻļ āĻĨ⧇āϕ⧇ āϤāĻžāϰ āĻŽāĻžāύ āωāĻ¤ā§āϤāϰāĻžāϧāĻŋāĻ•āĻžāϰ āϏ⧂āĻ¤ā§āϰ⧇ āĻĒāĻžāϝāĻŧ:

function myFunction() {
    let myArrowFunction = () => {
            console.log( arguments[ 0 ] );
    }
    myArrowFunction( true );
};

myFunction( false );
> false

āĻāχ āωāĻĻāĻžāĻšāϰāϪ⧇, āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟ false āϏāĻžāĻĨ⧇ āĻ•āϞ āĻ•āϰāĻž āĻāĻ•āϟāĻŋ āĻŦāĻžāχāϰ⧇āϰ āĻĢāĻžāĻ‚āĻļāύ āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟ true āϏāĻš āĻāĻ•āϟāĻŋ āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āϤ⧀āϰ āĻĢāĻžāĻ‚āĻļāύāϕ⧇ āĻ•āϞ āĻ•āϰ⧇āĨ¤ āĻ•āĻžāϰāĻŖ āϤ⧀āϰ āĻĢāĻžāĻ‚āĻļāύ⧇āϰ āĻ­āĻŋāϤāϰ⧇āϰ arguments āĻ…āĻŦāĻœā§‡āĻ•ā§āϟāϟāĻŋ āĻŦāĻžāχāϰ⧇āϰ āĻĢāĻžāĻ‚āĻļāύ⧇ āĻŦāĻžāρāϧāĻžāχāϝāĻŧ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰ⧇, āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āĻĢāĻžāĻ‚āĻļāύāϟāĻŋ āĻŦāĻžāχāϰ⧇āϰ āĻĢāĻžāĻ‚āĻļāύ⧇āϰ false āϞāĻ— āĻ•āϰ⧇āĨ¤

āϝāĻĻāĻŋ āĻĒā§āϝāĻžāϰ⧇āĻ¨ā§āϟ āĻĒā§āϰāϏāĻ™ā§āĻ— āĻĨ⧇āϕ⧇ āωāĻ¤ā§āϤāϰāĻžāϧāĻŋāĻ•āĻžāϰāϏ⧂āĻ¤ā§āϰ⧇ arguments āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āύāĻž āĻĨāĻžāϕ⧇, āϤ⧀āϰ āĻĢāĻžāĻ‚āĻļāύ⧇āϰ arguments āĻ…āĻŦāĻœā§‡āĻ•ā§āϟāϟāĻŋ āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āĻ•āϰāĻž āĻšāϝāĻŧ āύāĻž āĻāĻŦāĻ‚ āĻāϟāĻŋ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāϞ⧇ āĻāĻ•āϟāĻŋ āĻ¤ā§āϰ⧁āϟāĻŋ āĻĻ⧇āĻ–āĻž āĻĻ⧇āϝāĻŧ:

let myArrowFunction = () => {
    console.log(arguments);
};
myArrowFunction( true );
> Uncaught ReferenceError: arguments is not defined

āĻ…āĻŦāĻŋāϞāĻŽā§āĻŦ⧇ āφāĻŽāĻ¨ā§āĻ¤ā§āϰāĻŋāϤ āĻĢāĻžāĻ‚āĻļāύ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ (IIFE)

āĻāĻ•āϟāĻŋ āĻ…āĻŦāĻŋāϞāĻŽā§āĻŦ⧇ āφāĻŽāĻ¨ā§āĻ¤ā§āϰāĻŋāϤ āĻĢāĻžāĻ‚āĻļāύ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ (IIFE), āϝāĻžāϕ⧇ āĻ•āĻ–āύāĻ“ āĻ•āĻ–āύāĻ“ "āϏ⧇āϞāĻĢ-āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟāĻŋāĻ‚ āĻŦ⧇āύāĻžāĻŽā§€ āĻĢāĻžāĻ‚āĻļāύ" āĻŦāϞāĻž āĻšāϝāĻŧ, āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻĢāĻžāĻ‚āĻļāύ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ āϝāĻž āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āĻšāĻ“āϝāĻŧāĻžāϰ āϏāĻžāĻĨ⧇ āϏāĻžāĻĨ⧇āχ āĻŦāϞāĻž āĻšāϝāĻŧāĨ¤ āĻāĻ•āϟāĻŋ IIFE āĻāĻ•āϟāĻŋ āĻĢāĻžāĻ‚āĻļāύ āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϝāĻž āĻāĻ•āϟāĻŋ āĻ—ā§āϰ⧁āĻĒāĻŋāĻ‚ āĻ…āĻĒāĻžāϰ⧇āϟāϰ⧇ āĻĢāĻžāĻ‚āĻļāύāϟāĻŋ āφāĻŦāĻĻā§āϧ āĻ•āϰ⧇ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤ āĻāĻ•āϟāĻŋ āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧ āĻŽāĻŋāϞāĻŋāϤ āĻŦāĻ¨ā§āϧāύ⧀āϰ āĻœā§‹āĻĄāĻŧāĻž āϤāĻžāϰāĻĒāϰ āĻĢāĻžāĻ‚āĻļāύāϟāĻŋāϕ⧇ āĻ•āϞ āĻ•āϰ⧇, āĻšāϝāĻŧ āĻ…āĻŦāĻŋāϞāĻŽā§āĻŦ⧇ āĻĢāĻžāĻ‚āĻļāύ āϏāĻ‚āĻœā§āĻžāĻž āύāĻŋāĻœā§‡āχ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰ⧇ āĻŦāĻž āĻ…āĻŦāĻŋāϞāĻŽā§āĻŦ⧇ āĻ—ā§āϰ⧁āĻĒāĻŋāĻ‚ āĻ…āĻĒāĻžāϰ⧇āϟāϰāϕ⧇ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰ⧇āĨ¤ āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻĢāĻžāĻ‚āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āύ āϤāĻŦ⧇ āĻĻ⧁āϟāĻŋ āĻĒāĻĻā§āϧāϤāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āϕ⧋āύ āĻŦāĻžāĻ¸ā§āϤāĻŦ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āύ⧇āχ:

(function() {
    console.log( "IIFE.")
    }
)();
> "IIFE."

(function() {
    console.log( "IIFE.")
    }
());
> "IIFE."

āĻĒā§āϰāĻĨāĻŽ āωāĻĻāĻžāĻšāϰāĻŖ āĻĻāϞāĻŦāĻĻā§āϧ āĻĢāĻžāĻ‚āĻļāύ āĻ…āĻ­āĻŋāĻŦā§āϝāĻ•ā§āϤāĻŋ āĻ•āϞ. āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧ āωāĻĻāĻžāĻšāϰāĻŖāϟāĻŋ āĻ—ā§āϰ⧁āĻĒāĻŋāĻ‚ āĻ…āĻĒāĻžāϰ⧇āϟāϰāĻĻ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āĻĢāĻžāĻ‚āĻļāύ āĻ˜ā§‹āώāĻŖāĻžāϕ⧇ āĻ•āϞ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻļ⧇āώ āĻĢāϞāĻžāĻĢāϞāϟāĻŋ āϤāĻžāϰāĻĒāϰ āĻāĻ•āϟāĻŋ āĻ—ā§‹āĻˇā§āĻ ā§€āĻŦāĻĻā§āϧ āĻ…āĻ­āĻŋāĻŦā§āϝāĻ•ā§āϤāĻŋ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻŽā§‚āĻ˛ā§āϝāĻžāϝāĻŧāύ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āĻĢāϞāĻžāĻĢāϞ āωāĻ­āϝāĻŧ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇āχ āĻāĻ•āχāĨ¤

āϝāĻžāχāĻšā§‹āĻ•, āĻāĻ•āϟāĻŋ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āφāϛ⧇ āϝāĻ–āύ āφāĻĒāύāĻžāϰ IIFE āĻāĻ•āϟāĻŋ āϤ⧀āϰ āĻĢāĻžāĻ‚āĻļāύ āĻšāϝāĻŧāĨ¤ āĻāχ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āĻĢāĻžāĻ‚āĻļāύāϟāĻŋāϕ⧇ āĻ•āϞ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻŦāĻ¨ā§āϧāύ⧀āϗ⧁āϞāĻŋ āĻ…āĻŦāĻļā§āϝāχ āĻ—ā§āϰ⧁āĻĒāĻŋāĻ‚ āĻ…āĻĒāĻžāϰ⧇āϟāϰāϗ⧁āϞāĻŋāϰ āĻŦāĻžāχāϰ⧇ āĻšāϤ⧇ āĻšāĻŦ⧇, āĻ•āĻžāϰāĻŖ āĻāĻ•āϟāĻŋ āϤ⧀āϰ āĻĢāĻžāĻ‚āĻļāύ āύāĻŋāĻœā§‡āχ āĻāĻ•āϟāĻŋ āĻ…āĻ­āĻŋāĻŦā§āϝāĻ•ā§āϤāĻŋ āύāϝāĻŧ, āϤāĻŦ⧇ āĻāϟāĻŋ āĻāĻŽāύ āĻāĻ•āϟāĻŋ āĻĒā§āϰāϏāĻ™ā§āϗ⧇ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āωāϚāĻŋāϤ āϝ⧇āĻ–āĻžāύ⧇ āĻāĻ•āϟāĻŋ āĻ…āĻ­āĻŋāĻŦā§āϝāĻ•ā§āϤāĻŋ āĻĒā§āϰāĻ¤ā§āϝāĻžāĻļāĻŋāϤāĨ¤ āĻ—ā§āϰ⧁āĻĒāĻŋāĻ‚ āĻ…āĻĒāĻžāϰ⧇āϟāϰāĻĻ⧇āϰ āϏ⧁āϝ⧋āϗ⧇āϰ āĻ­āĻŋāϤāϰ⧇ āĻĨ⧇āϕ⧇ āϤ⧀āϰ āĻĢāĻžāĻ‚āĻļāύ āĻ•āϞ āĻ•āϰāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāĻžāϰ āĻ…āĻ°ā§āĻĨ āĻšāϞ āĻāĻ•āϟāĻŋ āϤ⧀āϰ āĻĢāĻžāĻ‚āĻļāύ āĻ•āϞ āĻ•āϰāĻž āϝāĻž āĻāĻ–āύāĻ“ āĻāĻ•āϟāĻŋ āĻ…āĻ­āĻŋāĻŦā§āϝāĻ•ā§āϤāĻŋāϰ āĻĒā§āϰāϏāĻ™ā§āϗ⧇ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšāϝāĻŧāύāĻŋ:

( () => {
    console.log( "IIFE." );
}() );
> Uncaught SyntaxError: missing ) in parenthetical

āϝ⧇āĻšā§‡āϤ⧁ āĻ—ā§āϰ⧁āĻĒāĻŋāĻ‚ āĻ…āĻĒāĻžāϰ⧇āϟāϰāϰāĻž āĻāĻ•āϟāĻŋ āĻ…āĻ­āĻŋāĻŦā§āϝāĻ•ā§āϤāĻŋ āφāĻļāĻž āĻ•āϰ⧇, āϤāĻžāĻĻ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āϤ⧀āϰ āĻĢāĻžāĻ‚āĻļāύāϟāĻŋ āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āĻ•āϰāĻž āĻšāϝāĻŧ, āϤāĻžāĻĻ⧇āϰ āĻ…āύ⧁āϏāϰāĻŖāĻ•āĻžāϰ⧀ āĻŦāĻ¨ā§āϧāύ⧀āϗ⧁āϞāĻŋāϕ⧇ āĻ—ā§‹āĻˇā§āĻ ā§€āĻŦāĻĻā§āϧ āĻ…āĻ­āĻŋāĻŦā§āϝāĻ•ā§āϤāĻŋāϕ⧇ āĻ•āϞ āĻ•āϰāϤ⧇ āĻĻ⧇āϝāĻŧ:

( () => {
    console.log( "IIFE." );
} )();
> "IIFE."

āϞāĻŋāĻ—ā§āϝāĻžāϏāĻŋ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ, āĻ¸ā§āϕ⧋āĻĒ āĻĒāϰāĻŋāϚāĻžāϞāύāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻžāϝāĻŧāĻļāχ āĻŦā§āϝāĻŦāĻšā§ƒāϤ IIFEs, āĻŦāĻŋāĻļ⧇āώāϤ āĻĢāĻžāĻ‚āĻļāύ-āĻ¸ā§āϕ⧋āĻĒāĻĄ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ āĻāĻŦāĻ‚ āĻĢāĻžāĻ‚āĻļāύ āĻ˜ā§‹āώāĻŖāĻžāϰ āϏāĻžāĻĨ⧇ āĻŦāĻŋāĻļā§āĻŦāĻŦā§āϝāĻžāĻĒā§€ āϏ⧁āϝ⧋āĻ—āϕ⧇ āĻĻā§‚āώāĻŋāϤ āύāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝāĨ¤ ES6-āĻ āĻŦā§āϞāĻ• āĻ¸ā§āϕ⧋āĻĒāĻŋāĻ‚ āĻĒā§āϰāĻŦāĻ°ā§āϤāύ⧇āϰ āφāϗ⧇, āĻŦāĻŋāĻļā§āĻŦāĻŦā§āϝāĻžāĻĒā§€ āϏ⧁āϝ⧋āϗ⧇āϰ āĻĻ⧁āĻ°ā§āϘāϟāύāĻžāϜāύāĻŋāϤ āĻĻā§‚āώāĻŖ āϰ⧋āϧ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āφāχāφāχāĻāĻĢāχ-āϤ⧇ āĻāĻ•āϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āĻŽā§‹āĻĄāĻŧāĻžāύ⧋ āϏāĻžāϧāĻžāϰāĻŖ āĻ…āĻ­ā§āϝāĻžāϏ āĻ›āĻŋāϞāĨ¤

āφāĻĒāύāĻžāϰ āωāĻĒāϞāĻŦā§āϧāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧁āύ

āφāĻĒāύāĻŋ āĻĢāĻžāĻ‚āĻļāύ⧇āϰ āĻŦāĻžāχāϰ⧇ āύāĻžāĻŽ āĻĻā§āĻŦāĻžāϰāĻž āĻāĻ•āϟāĻŋ āύāĻžāĻŽāϝ⧁āĻ•ā§āϤ āĻĢāĻžāĻ‚āĻļāύ āĻ…āĻ­āĻŋāĻŦā§āϝāĻ•ā§āϤāĻŋ āĻ•āϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ?

āύāĻž
āĻšā§āϝāĻžāρ