āĻĢāĻžāĻāĻļāύ āĻāĻā§āϏāĻĒā§āϰā§āĻļāύāĻā§āϞāĻŋ āĻāĻŽāύ āĻĢāĻžāĻāĻļāύāĻā§āϞāĻŋ āϤā§āϰāĻŋ āĻāϰ⧠āϝā§āĻāĻžāύ⧠āĻāĻāĻāĻŋ āĻ
āĻāĻŋāĻŦā§āϝāĻā§āϤāĻŋ āĻĒā§āϰāϤā§āϝāĻžāĻļāĻŋāϤ āĻšāϝāĻŧāĨ¤ āĻāĻĒāύāĻŋ āĻĒā§āϰāĻžāϝāĻŧāĻļāĻ āĻāĻāĻāĻŋ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞā§āϰ āĻāύā§āϝ āύāĻŋāϰā§āϧāĻžāϰāĻŋāϤ āĻŽāĻžāύ āĻšāĻŋāϏāĻžāĻŦā§ āĻĢāĻžāĻāĻļāύ āĻāĻā§āϏāĻĒā§āϰā§āĻļāύā§āϰ āϏāĻŽā§āĻŽā§āĻā§āύ āĻšāĻŦā§āύāĨ¤ āϝāĻĻāĻŋāĻ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāύ āĻā§āώāĻŖāĻžāϰ āĻāύā§āϝ āϏāϰā§āĻŦāĻĻāĻž āĻāĻāĻāĻŋ āύāĻžāĻŽā§āϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāϝāĻŧ, āĻāĻĒāύāĻŋ āĻļāύāĻžāĻā§āϤāĻāĻžāϰā§āĻā§ āĻŦāĻžāĻĻ āĻĻāĻŋāϝāĻŧā§ āĻāĻŦāĻ āĻāĻā§āĻāĻŋāĻ āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ āϏāĻŽāύā§āĻŦāĻŋāϤ āĻāĻ āĻā§āĻĄāĻŧāĻž āĻŦāύā§āϧāύ⧠āϏāĻš 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-āĻ āĻŦā§āϞāĻ āϏā§āĻā§āĻĒāĻŋāĻ āĻĒā§āϰāĻŦāϰā§āϤāύā§āϰ āĻāĻā§, āĻŦāĻŋāĻļā§āĻŦāĻŦā§āϝāĻžāĻĒā§ āϏā§āϝā§āĻā§āϰ āĻĻā§āϰā§āĻāĻāύāĻžāĻāύāĻŋāϤ āĻĻā§āώāĻŖ āϰā§āϧ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻāĻāĻāĻāĻāĻĢāĻ-āϤ⧠āĻāĻāĻāĻŋ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻŽā§āĻĄāĻŧāĻžāύ⧠āϏāĻžāϧāĻžāϰāĻŖ āĻ āĻā§āϝāĻžāϏ āĻāĻŋāϞāĨ¤
āĻāĻĒāύāĻžāϰ āĻāĻĒāϞāĻŦā§āϧāĻŋ āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āύ
āĻāĻĒāύāĻŋ āĻĢāĻžāĻāĻļāύā§āϰ āĻŦāĻžāĻāϰ⧠āύāĻžāĻŽ āĻĻā§āĻŦāĻžāϰāĻž āĻāĻāĻāĻŋ āύāĻžāĻŽāϝā§āĻā§āϤ āĻĢāĻžāĻāĻļāύ āĻ āĻāĻŋāĻŦā§āϝāĻā§āϤāĻŋ āĻāϞ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ?