рд╢реБрд░реБрдЖрддреА рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореВрд▓ рдмрд╛рддреЗрдВ

рд╕рд╛рдордЧреНрд░реА, рдЬрд┐рд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдЖрдЬ рд╣рдо рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИ рдФрд░ рд╢реБрд░реБрдЖрддреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИред рдЗрд╕реЗ рдЬреЗрдПрд╕ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╕рдВрджрд░реНрдн рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдо рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЪрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рднрд╛рд╖рд╛ рдХреА рдХреБрдЫ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред



рдЖрджрд┐рдо рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░


рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрджрд┐рдо рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ: number , boolean , string , undefined , null ред рдпрд╣ рддреБрд░рдВрдд рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐, рдЬрдм рдЖрджрд┐рдо рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢рд╛рдмреНрджрд┐рдХ рдХреЗ рд╕рд╛рде, рд╣рдо, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрд╛рдВрддрд░рдг рдХрд┐рдП рдмрд┐рдирд╛ рднреА, рдЙрдирдХреЗ рддрд░реАрдХреЛрдВ рдФрд░ рдЧреБрдгреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред рдпрд╣рд╛рдБ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЗрд╕ рддрд░рд╣ рдХреЗ рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╡рд╕реНрддреБ рдЖрд╡рд░рдг рд╕реЗ рд╕реБрд╕рдЬреНрдЬрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред

тЦН рд╕рдВрдЦреНрдпрд╛рдПрдБ


рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ - рдпрд╣ рджреЛрд╣рд░реА рд╕рдЯреАрдХ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рд╕рдВрдЦреНрдпрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдЕрдВрдХрдЧрдгрд┐рддреАрдп рд░реВрдк рд╕реЗ рдЧрд▓рдд рд╣реИрдВред рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реЛрдВрдЧреЗ рдХрд┐ рдЬреЗрдПрд╕ рдореЗрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдорд╛рди 0.1 + 0.2 рдирд╣реАрдВ 0.3 ред рдЙрд╕реА рд╕рдордп, рдЬрдм рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдПрдВ рдирд╣реАрдВ рджреЗрдЦреА рдЬрд╛рддреА рд╣реИрдВ, рдЕрд░реНрдерд╛рдд 1 + 2 === 3 ред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ Number рд╡рд╕реНрддреБ рд╣реИ, рдЬреЛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╕реНрддреБ рдЖрд╡рд░рдг рд╣реИред рдкреНрд░рдХрд╛рд░ Number рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдпрд╛ рддреЛ рдкреНрд░рдкрддреНрд░ var a = new Number(10) рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдЖрдк рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЖрдк рд╕рдВрдЦреНрдпрд╛рддреНрдордХ Number.prototype рдкрд░ рд▓рд╛рдЧреВ Number.prototype рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

 (123).toString();  //"123" (1.23).toFixed(1); //"1.2" 

рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╡реИрд╢реНрд╡рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВред рдпрд╣ parseInt() , parseFloat() рдФрд░ Number() рдирд┐рд░реНрдорд╛рдг рд╣реИ, рдЬреЛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЯрд╛рдЗрдк рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рддрд╛ рд╣реИ:

 parseInt("1")       //1 parseInt("text")    //NaN parseFloat("1.234") //1.234 Number("1")         //1 Number("1.234")     //1.234 

рдпрджрд┐ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ рдРрд╕рд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдирд╣реАрдВ рд╣реИ (рдХреБрдЫ рдЧрдгрдирд╛рдУрдВ рдХреЗ рджреМрд░рд╛рди, рдпрд╛ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЛ рдХрд┐рд╕реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп), рддреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдРрд╕реЗ рдСрдкрд░реЗрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдорд╛рди NaN (рдиреЙрдЯ-рдП-рдирдВрдмрд░) рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдЧрд╛ред рд╕рдВрдЦреНрдпрд╛ рдирд╣реАрдВ)ред рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рди NaN , рдЖрдк isNaN() рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЬреЗрдПрд╕ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдСрдкрд░реЗрд╢рди рдХрд╛рдлреА рдкрд░рд┐рдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ + рдСрдкрд░реЗрдЯрд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рддрд╛рд░реЛрдВ рдХрд╛ рд╕рдВрдШрдирди рдХрд░ рд╕рдХрддрд╛ рд╣реИред

 1 + 1      //2 "1" + "1"  //"11" 1 + "1"    //"11" 

тЦНStroki


рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддрд╛рд░ рдпреВрдирд┐рдХреЛрдб рд╡рд░реНрдг рдХреЗ рддрд╛рд░ рд╣реИрдВред рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢рд╛рдмреНрджрд┐рдХ рдкрд╛рда рджреЛрд╣рд░реЗ ( "" ) рдпрд╛ рдПрдХрд▓ ( '' ) рдЙрджреНрдзрд░рдгреЛрдВ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд▓рдЧреНрди рдХрд░рдХреЗ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрдм рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢рд╛рдмреНрджрд┐рдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╕рдВрдмрдВрдзрд┐рдд рд╡рд╕реНрддреБ рдЖрд╡рд░рдг рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдореЗрдВ рдХрдИ рдЙрдкрдпреЛрдЧреА рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВ, рдЙрдирдореЗрдВ рд╕реЗ substring() , indexOf() , concat() ред

 "text".substring(1,3) //ex "text".indexOf('x')   //2 "text".concat(" end") //text end 

рдЕрдиреНрдп рдЖрджрд┐рдо рдореВрд▓реНрдпреЛрдВ рдХреА рддрд░рд╣ рддрд╛рд░ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, concat() рд╡рд┐рдзрд┐ рдореМрдЬреВрджрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдирдпрд╛ рдмрдирд╛рддреА рд╣реИред

тЦНLogical рдорд╛рди


рдЬреЗрдПрд╕ рдореЗрдВ рддрд╛рд░реНрдХрд┐рдХ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЛ рджреЛ рдореВрд▓реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ - true рдФрд░ false ред рднрд╛рд╖рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдорд╛рдиреЛрдВ рдХреЛ рддрд╛рд░реНрдХрд┐рдХ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рддрд╛рд░реНрдХрд┐рдХ, false рдорд╛рди рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдорд╛рди null , undefined , '' (рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ), 0 рдФрд░ NaN ред рдХрд┐рд╕реА рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд╣рд┐рдд рдмрд╛рдХреА рд╕рдм, рд╕рд╣реА рдЕрд░реНрдереЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рддрд╛рд░реНрдХрд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди, рдЬреЛ рдХреБрдЫ рднреА рд╕рдЪ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд╣ рд╕рддреНрдп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ true , рдФрд░ рдЬреЛ рдХреБрдЫ рднреА рдЧрд▓рдд рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рд╡рд╣ рд╕рдм рдЭреВрда рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ false ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рдЙрдкрд░реЛрдХреНрдд рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ false рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ false рдФрд░ рдЗрд╕ рдХреЛрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧ This is false рд╣реИ, рдХрдВрд╕реЛрд▓ рдХреЛ рдорд┐рд▓реЗрдЧрд╛ред

 let text = ''; if(text) { console.log("This is true"); } else { console.log("This is false"); } 

рд╡рд╕реНрддреБрдПрдВ


рдСрдмреНрдЬреЗрдХреНрдЯ рдЧрддрд┐рд╢реАрд▓ рд╕рдВрд░рдЪрдирд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдорд╛рди рдореЗрдВ рдЖрджрд┐рдо рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдСрдмреНрдЬреЗрдХреНрдЯ рдпрд╛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдмреНрджрд┐рдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ:

 let obj = { message : "A message", doSomething : function() {} } 

рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдХрд┐рд╕реА рднреА рд╕рдордп рдкрдврд╝рд╛, рдЬреЛрдбрд╝рд╛, рд╕рдВрдкрд╛рджрд┐рдд рдФрд░ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ:

  • рдкрдврд╝рдирд╛ рдЧреБрдг: object.name, object[expression] ред
  • рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд▓рд┐рдЦрдирд╛ (рдпрджрд┐ рдПрдХреНрд╕реЗрд╕ рдХреА рдЬрд╛ рд░рд╣реА рд╕рдВрдкрддреНрддрд┐ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдПрдХ рдирдИ рд╕рдВрдкрддреНрддрд┐ рдЬреЛрдбрд╝реА рдЧрдИ рд╣реИ): object.name = value , object[expression] = value ред
  • рдЧреБрдг delete object.name : delete object.name , delete object[expression] ред

рдпрд╣рд╛рдБ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ:

 let obj = {}; //    obj.message = "A message"; //    obj.message = "A new message"; //   delete object.message; //   

рднрд╛рд╖рд╛ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╣реИрд╢ рдЯреЗрдмрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Object.create(null) рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ:

 let french = Object.create(null); french["yes"] = "oui"; french["no"]  = "non"; french["yes"];//"oui" 

рдпрджрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк Object.freeze() рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рднреА рдЧреБрдгреЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк Object.keys() рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 function logProperty(name){ console.log(name); //  console.log(obj[name]); //   } Object.keys(obj).forEach(logProperty); 

Types рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░ рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди


рдЖрджрд┐рдо рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХрд╛рд░реНрдп рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдЧреБрдг рдФрд░ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реИрдВред рдЖрджрд┐рдо рдореВрд▓реНрдп рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИрдВ, рд╡рд╕реНрддреБрдУрдВ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдмрджрд▓ рд╕рдХрддреА рд╣реИред

рдЪрд░


рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ var , let рдФрд░ const рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

var рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЗрд╕реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдЖрд░рдВрдн рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЪрд░ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорд╛рди undefined ред var рдХреАрд╡рд░реНрдб рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдШреЛрд╖рд┐рдд рдЪрд░ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЧреБрдВрдЬрд╛рдЗрд╢ рд╣реЛрддреА рд╣реИред

let рдХреАрд╡рд░реНрдб, var рд╕рдорд╛рди рд╣реИ, рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ let рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╡реИрд░рд┐рдПрдмрд▓ рдореЗрдВ рдмреНрд▓реЙрдХ рд╕реНрдХреЛрдк рд╣реИред

const рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдореЗрдВ рдПрдХ рдмреНрд▓реЙрдХ рд╕реНрдХреЛрдк рднреА рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕ рддрдереНрдп рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреЛ рдЕрдзрд┐рдХ рд╕рд╣реА рдврдВрдЧ рд╕реЗ "рдХреЙрдиреНрд╕реНрдЯреЗрдВрдЯ" рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред const рдХреАрд╡рд░реНрдб, рдЬреЛ "рдлреНрд░реАрдЬрд╝" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЧрдП рдПрдХ рдЪрд░ рдХреЗ рдореВрд▓реНрдп рдХреЛ Object.freeze() рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ "рдлреНрд░реАрдЬ" рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ред

рдпрджрд┐ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рд╣рд░ рдПрдХ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рджрд╛рдпрд░рд╛ рд╡реИрд╢реНрд╡рд┐рдХ рд╣реИред

рд╕рд░рдгрд┐рдпреЛрдВ


рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрд░реЗ рдХреЛ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╕рдордп, рд╣рдо, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рдорд╛рди рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдЕрдкрдиреЗ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░рдгреА рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕реВрдЪрдХрд╛рдВрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕рд░рдгреА рддрддреНрд╡реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╛рдореЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, arr[1] рдлреЙрд░реНрдо arr[1] рдПрдХ arr['1'] рдлреЙрд░реНрдо arr['1'] рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдорд╛рди рд╣реИ, рдФрд░ рджреЛрдиреЛрдВ рд╕рдорд╛рди рдореВрд▓реНрдп рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗ: arr[1] === arr['1'] ред рдЙрдкрд░реНрдпреБрдХреНрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдШреЛрд╖рд┐рдд рдПрдХ рд╕рд░рд▓ рд╕рд░рдгреА let arr = ['A', 'B', 'C'] рдХреЛ рдирд┐рдореНрди рдлреЙрд░реНрдо рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 { '0': 'A', '1': 'B', '2': 'C' } 

delete рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрд░реЗ рддрддреНрд╡реЛрдВ рдХреЛ delete рдЗрд╕рдореЗрдВ рдЫреЗрдж рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк splice() рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдзреАрд░реЗ-рдзреАрд░реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрд┐рд╕реА рддрддреНрд╡ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рд╕рд░рдгреА рдХреЗ рд╢реЗрд╖ рддрддреНрд╡реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рд╕рд░рдгреА рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдмрд╛рдИрдВ рдУрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

 let arr = ['A', 'B', 'C']; delete arr[1]; console.log(arr); // ['A', empty, 'C'] console.log(arr.length); // 3 

рдПрд░реЗ рддрд░реАрдХреЛрдВ рд╕реЗ рд╕реНрдЯреИрдХ рдФрд░ рдХрддрд╛рд░реЛрдВ рдЬреИрд╕реА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:

 //  let stack = []; stack.push(1);           // [1] stack.push(2);           // [1, 2] let last = stack.pop();  // [1] console.log(last);       // 2 //  let queue = []; queue.push(1);           // [1] queue.push(2);           // [1, 2] let first = queue.shift();//[2] console.log(first);      // 1 

рдХрд╛рд░реНрдпреЛрдВ


рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд╛рд░реНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВред рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЪрд░ рдХреЗ рд▓рд┐рдП рд╕реМрдВрдкрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╡рд╕реНрддреБрдУрдВ рдпрд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рддреАрди рддрд░реАрдХреЗ рд╣реИрдВ:

  • рдХреНрд▓рд╛рд╕рд┐рдХрд▓ рдлрдВрдХреНрд╢рди рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди (рдлрдВрдХреНрд╢рди рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рдпрд╛ рдлрдВрдХреНрд╢рди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ)ред
  • рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ (рдлрдВрдХреНрд╢рди рдПрдХреНрд╕рдкреНрд░реЗрд╢рди) рдХрд╛ рдЙрдкрдпреЛрдЧ, рдЬрд┐рд╕реЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╢рд╛рдмреНрджрд┐рдХ (рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЯрд░рд▓) рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рддреАрд░ рдлрд╝рдВрдХреНрд╢рди (рдПрд░реЛ рдлрд╝рдВрдХреНрд╢рди) рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред

Ation рдХреНрд▓рд╛рд╕рд┐рдХ рд╕рдорд╛рд░реЛрд╣ рдШреЛрд╖рдгрд╛


рдШреЛрд╖рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдо рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ:

  • рдлрд╝рдВрдХреНрд╢рди рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рд▓рд╛рдЗрди рдореЗрдВ рдкрд╣рд▓рд╛ рдХреАрд╡рд░реНрдб function ред
  • рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХ рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  • рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рддрдВрддреНрд░ рдХреЛ рдЙрд╕ рджрд╛рдпрд░реЗ рдХреЗ рд╢реАрд░реНрд╖ рддрдХ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рдХрд╛рд░рдг рдЗрд╕рдХреА рдШреЛрд╖рдгрд╛ рд╕реЗ рдкрд╣рд▓реЗ рдХреЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдШреЛрд╖рдгрд╛ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 function doSomething(){} 

Expressions рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐


рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:

  • function рдХреАрд╡рд░реНрдб рдЕрдм рдлрд╝рдВрдХреНрд╢рди рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рд▓рд╛рдЗрди рдореЗрдВ рдкрд╣рд▓рд╛ рд╢рдмреНрдж рдирд╣реАрдВ рд╣реИред
  • рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред рдЕрдирд╛рдо рдФрд░ рдирд╛рдорд┐рдд рджреЛрдиреЛрдВ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
  • рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдХреЛ рдЙрдирдХреЗ рдШреЛрд╖рдгрд╛ рдХреЗ рд▓рд┐рдП рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
  • рдЗрд╕ рддрд░рд╣ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ IIFE рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдШреЛрд╖рдгрд╛ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рддреБрд░рдВрдд рдЗрдирд╡реЙрдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ - рддреБрд░рдВрдд рдлрд╝рдВрдХреНрд╢рди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

 let doSomething = function() {} 

Functions рддреАрд░ рдХрд╛рд░реНрдп


рддреАрд░ рдХрд╛рд░реНрдп, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, "рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЪреАрдиреА" рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЧреБрдордирд╛рдо рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдВ рдмрдирд╛рдИ рдЬрд╛ рд╕рдХреЗрдВред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЕрдкрдиреА рд╕рдВрд╕реНрдерд╛рдПрдВ рдФрд░ arguments ред рддреАрд░ рдлрд╝рдВрдХреНрд╢рди рдШреЛрд╖рдгрд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

 let doSomething = () = > {}; 

тЦН рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ


рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕рд╛рдорд╛рдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓


 doSomething(arguments) 

рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓


 theObject.doSomething(arguments) theObject["doSomething"](arguments) 

рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓


 new doSomething(arguments) 

рд▓рд╛рдЧреВ () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛


 doSomething.apply(theObject, [arguments]) doSomething.call(theObject, arguments) 

рдмрд╛рдЗрдВрдб () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛


 let doSomethingWithObject = doSomething.bind(theObject); doSomethingWithObject(); 

рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЧрдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди, "рдЕрддрд┐рд░рд┐рдХреНрдд" рддрд░реНрдХреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрди рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрдЧрд╛), рд▓рд╛рдкрддрд╛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ undefined рдорд╛рди рдорд┐рд▓реЗрдЧрд╛ред

рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рджреЛ рдЫрджреНрдо рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ: this рдФрд░ arguments ред

This рдпрд╣ рдЦреЛрдЬрд╢рдмреНрдж


this рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рд╡рд╣ рдорд╛рди рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреИрд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред this рдХреАрд╡рд░реНрдб рдХреЗ рдЕрд░реНрде this рдЖрдзрд╛рд░ рдкрд░ рд╣реИрдВ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреИрд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИрдВ, рдЬрд┐рдирдХреЗ рдирд┐рд░реНрдорд╛рдг рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд╣реИрдВ):

  • рд╕рд╛рдорд╛рдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ window / undefined ред
  • рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ theObject ред
  • рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдПрдХ рдирдИ рд╡рд╕реНрддреБ рд╣реИред
  • apply() рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ - theObject ред
  • bind() рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ - theObject ред

Word рдХреАрд╡рд░реНрдб рддрд░реНрдХ


arguments рдХреАрд╡рд░реНрдб рдПрдХ рдЫрджреНрдо рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рддрд░реНрдХреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рд╕рд░рдгреА рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рд░рдгреА рдХреА рддрд░рд╣ рдирд╣реАрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЗрд╕рдореЗрдВ рд╕рд░рдгреА рд╡рд┐рдзрд┐рдпрд╛рдБ рдирд╣реАрдВ рд╣реИрдВред

 function reduceToSum(total, value){ return total + value; } function sum(){ let args = Array.prototype.slice.call(arguments); return args.reduce(reduceToSum, 0); } sum(1,2,3); 

arguments рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╢реЗрд╖ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, args рдПрдХ рд╕рд░рдгреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рдм рдХреБрдЫ рд╣реИ рдЬрд┐рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

 function sum(...args){ return args.reduce(reduceToSum, 0); } 

тЦНрдСрдкрд░реЗрдЯрд░ рдХреА рд╡рд╛рдкрд╕реА


рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ return рдирд╣реАрдВ рд╣реИ, undefined рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред return рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рд╕рдореНрдорд┐рд▓рди рддрдВрддреНрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдЦрд╛рд▓реА рд╡рд╕реНрддреБ рдирд╣реАрдВ рд▓реМрдЯрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдХ undefined рдореВрд▓реНрдп:

 function getObject(){ return { } } getObject() 

рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рд┐рд╡рд░рдг рдХрд░реНрд▓реА рдмреНрд░реИрдХреЗрдЯ рдХреЛ рдЙрд╕реА рд▓рд╛рдЗрди рдкрд░ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕реЗ return :

 function getObject(){ return { } } 

рдЧрддрд┐рд╢реАрд▓ рдЯрд╛рдЗрдкрд┐рдВрдЧ


рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдЯрд╛рдЗрдкрд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдиреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЪрд░ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди, рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдПрдХ рд╣реА рдЪрд░ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

 function log(value){ console.log(value); } log(1); log("text"); log({message : "text"}); 

рдПрдХ рдЪрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк typeof() рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 let n = 1; typeof(n);   //number let s = "text"; typeof(s);   //string let fn = function() {}; typeof(fn);  //function 

рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рдирд┐рд╖реНрдкрд╛рджрди рдореЙрдбрд▓


рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рдирдЯрд╛рдЗрдо рд╕рд┐рдВрдЧрд▓-рдереНрд░реЗрдбреЗрдб рд╣реИред рдпрд╣, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рджреЛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрд╕рдВрднрд╡рддрд╛ рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрджрд┐ рдЖрдк рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдо рдпрд╣рд╛рдВ рдирд╣реАрдВ рдЫреВрддреЗ рд╣реИрдВ)ред рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдПрдХ рддрдерд╛рдХрдерд┐рдд рдЗрд╡реЗрдВрдЯ рдХреНрдпреВ рд╣реИ, рдЬреЛ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдирддреАрдЬрддрди, рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рдЬреЗрдПрд╕ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЖрдкрд╕реА рд╕рдВрд╕рд╛рдзрди рддрд╛рд▓реЗ рдХреА рд╕рдорд╕реНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рд▓реЙрдХ рддрдВрддреНрд░ рдХреА рдпрд╣рд╛рдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдИрд╡реЗрдВрдЯ рдХрддрд╛рд░ рдореЗрдВ рдЧрд┐рд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рдЬрд▓реНрджреА рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рдореБрдЦреНрдп рдереНрд░реЗрдб рдореЗрдВ, рднрд╛рд░реА рдХрд╛рдо рдХреЗ рд╕рд╛рде рдУрд╡рд░рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреЗрдЬ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрдЧрд╛ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрд╕ рдкреГрд╖реНрда рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░реЗрдЧрд╛ред

рдЕрдкрд╡рд╛рдж рд╕рдВрднрд╛рд▓рдирд╛


рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рддрдВрддреНрд░ рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХреЗ рддрдВрддреНрд░ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдХреЛрдб рдЬреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ try/catch рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреЛрдб рд╣реА try рдмреНрд▓реЙрдХ рдореЗрдВ рд╣реИ, рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ catch рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рдХрднреА-рдХрднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдЖрдкрд╛рддрдХрд╛рд▓реАрди рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЬреЗрдПрд╕ рдиреЗ ECMAScript 3 рдорд╛рдирдХ рдХреЛ рдЕрдкрдирд╛рдиреЗ рддрдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдирд╣реАрдВ рдлреЗрдВрдХрд╛ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ, "рдЬрдореЗ рд╣реБрдП" рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдХ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рдлреЗрдВрдХрд╛ рдЬрд╛рдПрдЧрд╛ред

 let obj = Object.freeze({}); obj.message = "text"; 

"рдореВрдХ" рдЬреЗрдПрд╕ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ; рдЖрдк "use strict"; рдирд┐рд░реНрдорд╛рдг рдХрд╛ "use strict"; рдХрд░рдХреЗ рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ "use strict"; ред

рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдкреНрд░рдгрд╛рд▓реА


рдирд┐рд░реНрдорд╛рддрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдРрд╕реЗ JS рддрдВрддреНрд░реЛрдВ рдХрд╛ рдЖрдзрд╛рд░, Object.create() рдХрдорд╛рдВрдб, class рдХреАрд╡рд░реНрдб, рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

 let service = { doSomething : function() {} } let specializedService = Object.create(service); console.log(specializedService.__proto__ === service); //true 

рдпрд╣рд╛рдВ, рдПрдХ specializedService service рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕рдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдПрдХ service рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ рдерд╛, Object.create() рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ doSomething() рд╡рд┐рдзрд┐ рдХреЛ specializedService рдСрдмреНрдЬреЗрдХреНрдЯ рддрдХ doSomething() рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ specializedService service рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА __proto__ рд╕рдВрдкрддреНрддрд┐ рдПрдХ service рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИред

рдЕрдм class рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рдорд╛рди рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ:

 class Service { doSomething(){} } class SpecializedService extends Service { } let specializedService = new SpecializedService(); console.log(specializedService.__proto__ === SpecializedService.prototype); 

Service рд╡рд░реНрдЧ рдореЗрдВ рдШреЛрд╖рд┐рдд рддрд░реАрдХреЗ Service.prototype рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рдПрдВрдЧреЗред Service рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╕рдорд╛рди рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк ( Service.prototype ) рд╣реЛрдЧрд╛ред рд╕рднреА рдЙрджрд╛рд╣рд░рдг Service.prototype рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдХреЙрд▓ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХрд░реЗрдВрдЧреЗред рдирддреАрдЬрддрди, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ Service.prototype рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рд╣реА рд╡рд┐рдзрд┐рдпрд╛рдВ рдШреЛрд╖рд┐рдд рдХреА рдЧрдИ рд╣реИрдВ Service.prototype рдХреЗ рдмрд╛рдж, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ рдХрдХреНрд╖рд╛ рдХреЗ рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ "рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ" рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Chain рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдЪреЗрди


рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ "рд╡рд╛рд░рд┐рд╕" рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рдХрд╛ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рддрд░реАрдХреЗ рдЙрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдРрд╕реА рд╕рдВрдкрддреНрддрд┐ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╣реА рдирд╣реАрдВ рд╣реИ, рддреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЗрд╕реЗ рдЦреЛрдЬрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ред рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддрдм рддрдХ рдЬрд╛рд░реА рд░рд╣реЗрдЧреА рдЬрдм рддрдХ рдХрд┐ рд╕рдВрдкрддреНрддрд┐ рдирд╣реАрдВ рдорд┐рд▓ рдЬрд╛рддреА рд╣реИ, рдпрд╛ рдЬрдм рддрдХ рдЦреЛрдЬ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдЕрдВрдд рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рдЬрд╛рддреА рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рдВрд╕ рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВ; рднрд╛рд╖рд╛ рдХреНрд▓реЛрдЬрд░ рдореИрдХреЗрдирд┐рдЬреНрдо рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИред рдпрд╣ рдЬреЗрдПрд╕ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рддрдХрдиреАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рдЦреЛрд▓рддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдо рдЙрдЪреНрдЪ-рдХреНрд░рдо рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдХреНрд▓реЛрдЬрд░ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреИрд░реЗрдВрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрддреА рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреЗрд░реЗрдВрдЯ рдлрд╝рдВрдХреНрд╢рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рднреАред

рдПрдХ рдЙрдЪреНрдЪ-рдХреНрд░рдо рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рддрд░реНрдХ, рд░рд┐рдЯрд░реНрди рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рджреЛрдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗ рд╕рдХрддрд╛ рд╣реИред

рдЬреЗрдПрд╕ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрдИ рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдХреБрдЫ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреЗ рдХрд╛рд░реНрдпреЛрдВ , рд░рдЪрдирд╛ , рд╕рдЬреНрдЬрд╛рдХрд╛рд░ , рдХреНрд▓реЛрдЬрд░, рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╢реИрд▓реА рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдХреЛрдб рдХреА рдкрдардиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИрдВред

рдкрд░рд┐рдгрд╛рдо


рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╢рдХреНрддрд┐ рдЗрд╕рдХреА рд╕рд╛рджрдЧреА рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред рднрд╛рд╖рд╛ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рддрдВрддреНрд░ рдХреЛ рд╕рдордЭрдирд╛ рдЬреЗрдПрд╕рдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдЗрди рддрдВрддреНрд░реЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЙрдирдХреЗ рдкреЗрд╢реЗрд╡рд░ рд╡рд┐рдХрд╛рд╕ рдХреА рдиреАрдВрд╡ рд░рдЦрддрд╛ рд╣реИред

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдХреНрдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ newbies рдХрд╛рд░рдг рд╣реИрдВ?

Source: https://habr.com/ru/post/hi416375/


All Articles