рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЧрд╛рдЗрдб рднрд╛рдЧ 7: рд╕рдЦреНрдд рдореЛрдб, рдпрд╣ рдХреАрд╡рд░реНрдб, рдШрдЯрдирд╛рдУрдВ, рдореЙрдбреНрдпреВрд▓, рдЧрдгрд┐рдд

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

тЖТ рднрд╛рдЧ 1: рдкрд╣рд▓рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо, рднрд╛рд╖рд╛ рд╕реБрд╡рд┐рдзрд╛рдПрдБ, рдорд╛рдирдХ
тЖТ рднрд╛рдЧ 2: рдХреЛрдб рд╢реИрд▓реА рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдВрд░рдЪрдирд╛
тЖТ рднрд╛рдЧ 3: рдЪрд░, рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░, рднрд╛рд╡, рд╡рд╕реНрддреБ
тЖТ рднрд╛рдЧ 4: рд╕реБрд╡рд┐рдзрд╛рдПрдБ
тЖТ рднрд╛рдЧ 5: рд╕рд░рдгрд┐рдпрд╛рдБ рдФрд░ рд▓реВрдк
тЖТ рднрд╛рдЧ 6: рдЕрдкрд╡рд╛рдж, рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо, рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рд╢рд╛рдмреНрджрд┐рдХ
тЖТ рднрд╛рдЧ 7: рд╕рдЦреНрдд рдореЛрдб, рдпрд╣ рдХреАрд╡рд░реНрдб, рдШрдЯрдирд╛рдУрдВ, рдореЙрдбреНрдпреВрд▓, рдЧрдгрд┐рддреАрдп рдЧрдгрдирд╛
тЖТ рднрд╛рдЧ 8: ES6 рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди
тЖТ рднрд╛рдЧ 9: ES7, ES8 рдФрд░ ES9 рдорд╛рдирдХреЛрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди



рд╕рдЦреНрдд рдореЛрдб


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

рд╕рдЦреНрдд рдореЛрдб рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛


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

рд╕рдЦреНрдд рдореЛрдб рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред

'use strict' 

"use strict" рдФрд░ рдЙрд╕реА рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдмрд╛рдж рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдирд┐рд░реНрджреЗрд╢ рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдПрдХ рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо ( 'use strict'; "use strict"; рдФрд░ "use strict"; ) рдЙрд╕реА рдкреНрд░рднрд╛рд╡ рдХреЛ рдЬрдиреНрдо рджреЗрддрд╛ рд╣реИред рдпрд╣ рдирд┐рд░реНрджреЗрд╢ (рдмрд╕ рдЙрд╕ рддрд░рд╣ - рдПрдХ рд╕рд╛рде рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдХреЗ рд╕рд╛рде), рддрд╛рдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рднреА рдХреЛрдб рдХреЛ рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред

 'use strict' const name = 'Flavio' const hello = () => 'hey' //... 

рдПрдХ рдЕрд▓рдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕реНрддрд░ рдкрд░ рд╕рдЦреНрдд рдореЛрдб рдХреЛ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╝рдВрдХреНрд╢рди рдмреЙрдбреА рдХреЛрдб рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рд░реНрджреЗрд╢ рдХреЛ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

 function hello() { 'use strict' return 'hey' } 

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

рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрджрд┐ рд╕рдЦреНрдд рдореЛрдб рдЪрд╛рд▓реВ рд╣реИ, рддреЛ рдЖрдк рдкреНрд░реЛрдЧреНрд░рд╛рдо рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдЗрд╕реЗ рдмрдВрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

рд╕рдЦреНрдд рдореЛрдб рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

Ables рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдВрдпреЛрдЬрди


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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдХреЛрдб рдХреЗрд╡рд▓ рдПрдХ рдРрд╕рд╛ рдЪрд░ рдмрдирд╛рддрд╛ рд╣реИред

 ;(function() { variable = 'hey' })() 

IIFE рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж variable рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред

рдпрджрд┐ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕реНрддрд░ рдкрд░ рд╕рдЦреНрдд рдореЛрдб рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╕рдорд╛рди рдХреЛрдб рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ред

 ;(function() { 'use strict' variable = 'hey' })() 

ред рдХрд╛рд░реНрдп рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди рд╣реЛрдиреЗ рд╡рд╛рд▓реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ


рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рдореЗрдВ, рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рднреА рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

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

 undefined = 1 

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ undefined рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдХрд╛рдИ рд▓рд┐рдЦрдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╕реНрддреБ рдХреА рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдПрдХ рдирдпрд╛ рдореВрд▓реНрдп рд▓рд┐рдЦрдиреЗ рдХрд╛ рдПрдХ рдкреНрд░рдпрд╛рд╕ рд╣реИ, рдЬреЛ, рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╡реИрд╕реЗ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рдореЗрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдХрдорд╛рдВрдб рд╕рдВрднрд╡ рд╣реИ, рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓реЗрдЧрд╛ - рдпрд╛рдиреА undefined рдореВрд▓реНрдп рдХреЛ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдирд╣реАрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ, рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ред рдЗрд╕ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ undefined рдореВрд▓реНрдп рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рдореЗрдВ рдУрд╡рд░рд░рд╛рдЗрдб рдирд╣реАрдВ рд╣реИ, рдирд┐рдореНрди рдХреЛрдб рдХреЛ рдХрд┐рд╕реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдпрд╛ Node.js. рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

 undefined = 1 console.log('This is '+undefined) ;(() => { 'use strict' undefined = 1 })() 

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

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдЖрдк Object.defineProperty () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЧреБрдг рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рдРрд╕реЗ рдЧреБрдг рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

 const car = {} Object.defineProperty(car, 'color', {  value: 'blue',  writable: false }) console.log(car.color) car.color = 'yellow' console.log(car.color) 

color рдЧреБрдг рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА writable: false рд╡рд┐рд╢реЗрд╖рддрд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред

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

 ;(() => { 'use strict' car.color = 'red' })() 

рд╡рд╣реА рдЧреЗрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреЛрдИ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рд╣реБрдЖред

 const car = { get color() {   return 'blue' } } console.log(car.color) car.color = 'red' console.log(car.color) 

рдФрд░ рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ рдПрдХ рд╣реА рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдПрдХ рд╡рд╕реНрддреБ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдЧреЗрдЯрд░ рд╣реИред

 ;(() => { 'use strict' car.color = 'yellow' } )() 

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ Object.preventExtensions () рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЧреИрд░-рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рдмрдирд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдПрдХ рдирдпрд╛ рдЧреБрдг рдЬреЛрдбрд╝рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рднрд╛рд╖рд╛ рдХреА рд╡рд╣реА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЬреЛ рд╣рдордиреЗ рдКрдкрд░ рдЬрд╛рдВрдЪ рдХреА рдереАрдВ, рд╡реЗ рдкреНрд░рдХрдЯ рд╣реЛрддреА рд╣реИрдВред

 const car = { color: 'blue' } Object.preventExtensions(car) console.log(car.model) car.model = 'Fiesta' console.log(car.model) 

рдпрд╣рд╛рдВ, model рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рджреЛрдиреЛрдВ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХрдВрд╕реЛрд▓ рдореЗрдВ undefined рдореВрд▓реНрдп рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдРрд╕реА рдХреЛрдИ рд╕рдВрдкрддреНрддрд┐ рдирд╣реАрдВ рдереА; рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЧреИрд░-рд╡рд┐рд╕реНрддрд╛рд░ рдпреЛрдЧреНрдп рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реБрдЖред рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ рдПрдХ рд╣реА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдЖрддрд╛ рд╣реИред

 ;(() => { 'use strict' car.owner = 'Flavio' } )() 

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

 let one = 1 one.prop = 2 console.log(one.prop) 

рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ рд╕рдорд╛рди рд╣реЛрдиреЗ рд╕реЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ prop рдкреНрд░реЙрдкрд░реНрдЯреА рдирдВрдмрд░ 1 рдкрд░ рдирд╣реАрдВ рдмрдирд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИред рдЗрд╕реА рддрд░рд╣ рд╕реЗ, рдЕрдиреНрдп рдЖрджрд┐рдо рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд╕рд┐рд╕реНрдЯрдо рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред

тЦН рдПрдВрдЯрд┐рдЯреА рдбрд┐рд▓реЗрдпрди рдПрд░рд░реНрд╕


рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рдореЗрдВ, рдпрджрд┐ рдЖрдк рдбрд┐рд▓реАрдЯ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдЯрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдРрд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░реЙрдкрд░реНрдЯреА рдЬрд┐рд╕реЗ рдбрд┐рд▓реАрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, delete рдмрд╕ false рд╡рд╛рдкрд╕реА рд╣реЛрдЧреА рдФрд░ рд╕рдм рдХреБрдЫ рдЪреБрдкрдЪрд╛рдк рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

 delete Object.prototype 

рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ, рдпрд╣рд╛рдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреАред

ред рд╕рдорд╛рди рдирд╛рдо рдХреЗ рд╕рд╛рде рдлрд╝рдВрдХреНрд╢рди рддрд░реНрдХ


рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд╕реЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрдирддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдРрд╕рд╛ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реЗ рддреНрд░реБрдЯрд┐ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ)ред

 ;(function(a, a, b) { console.log(a, b) })(1, 2, 3) //2 3 

рдпрд╣ рдХреЛрдб рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдХрдВрд╕реЛрд▓ рдореЗрдВ 2 3 рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ, рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ред

рд╡реИрд╕реЗ, рдЕрдЧрд░ рдРрд░реЛ рдлрдВрдХреНрд╢рди рдХреА рдШреЛрд╖рдгрд╛ рдХреЗ рджреМрд░рд╛рди рдЗрд╕рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдПрдХ рд╣реА рдирд╛рдо рд╣реЛрдЧрд╛, рддреЛ рдпрд╣, рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рдореЗрдВ, рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред

Values тАЛтАЛрдЕрд╖реНрдЯрдо рднрд╛рд╡


рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдЖрдк рд╢реБрд░реБрдЖрдд рдореЗрдВ 0 рдЬреЛрдбрд╝рдХрд░ рдЕрд╖реНрдЯ рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 ;(() => { console.log(010) })() //8 

рдпрд╣рд╛рдВ, рдСрдХреНрдЯрд▓ рдирдВрдмрд░ 10 , рдпрд╛рдиреА 8 рдХрд╛ рджрд╢рдорд▓рд╡ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдорд┐рд▓реЗрдЧрд╛ред рдпрд╣ 0 рд╕реЗ рдкрд╣рд▓реЗ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ, рдЖрдк рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрд╖реНрдЯрдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЛ рд╕рдЦреНрдд рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдСрдХреНрдЯрд▓ рдирдВрдмрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ 0oXX рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдирд┐рдореНрди рдХреЛрдб рднреА 8 рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛ред

 ;(() => { 'use strict' console.log(0o10) })() //8 

тЦНOperator рдХреЗ рд╕рд╛рде


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

рдпрд╣ рдХреАрд╡рд░реНрдб рд╕реБрд╡рд┐рдзрд╛рдПрдБ


this , рдпрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдВрджрд░реНрдн, рдЖрдкрдХреЛ рдЙрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ JS рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЕрд░реНрде рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЬрдЧрд╣ рдкрд░ рдФрд░ рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рдЦреНрдд рдореЛрдб рд╕рдХреНрд╖рдо рд╣реИ рдпрд╛ рдирд╣реАрдВред

ред рдЗрд╕реЗ рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ рд░рдЦреЗрдВ


рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджрд┐рдпрд╛ рдЧрдпрд╛ this рдорд╛рди рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдирд╣реАрдВ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рди рдХреЗрд╡рд▓ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдмрд▓реНрдХрд┐ рдпрджрд┐ рд╡реЗ this рд╕реЗрдЯ рдХреЗ рд╕рд╛рде undefined рдпрд╛ null рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рд╡реИрд╢реНрд╡рд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рддрдХ рдЕрдирдзрд┐рдХреГрдд рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ, this рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджрд┐рдП рдЧрдП рд░реВрдкрд╛рдВрддрд░рдг рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЛрдб рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ this рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ 'use strict' рдирд┐рд░реНрджреЗрд╢ рдХрд╛ 'use strict' рдФрд░ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд░реЗрдВред

 ;(function() { console.log(this) })() 

ред рдпрд╣ рдХреАрд╡рд░реНрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдердб рдореЗрдВ рд╣реИ


рдПрдХ рд╡рд┐рдзрд┐ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬрд┐рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░реЙрдкрд░реНрдЯреА рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ this рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдХрдерди рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рджреНрд╡рд╛рд░рд╛ рд╕реНрдкрд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

 const car = { maker: 'Ford', model: 'Fiesta', drive() {   console.log(`Driving a ${this.maker} ${this.model} car!`) } } car.drive() //Driving a Ford Fiesta car! 

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рд╕рд╛рдорд╛рдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдФрд░ рди рдХрд┐ рддреАрд░ рдПрдХ - рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ), рдпрд╣ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреАрд╡рд░реНрдб рдЬрд┐рд╕рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рд╡рд╛рд▓реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡рд╕реНрддреБ рд╡рд┐рдзрд┐ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рдзрд┐ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

 const car = { maker: 'Ford', model: 'Fiesta', drive: function() {   console.log(`Driving a ${this.maker} ${this.model} car!`) } } 

рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ this рддрд░реАрдХреЗ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирд┐рдореНрди рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреА рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

 const car = { maker: 'Ford', model: 'Fiesta' } car.drive = function() { console.log(`Driving a ${this.maker} ${this.model} car!`) } car.drive() //Driving a Ford Fiesta car! 

Word рдЗрд╕рдХреЛ рдХреАрд╡рд░реНрдб рдХрд░реЗрдВ рдФрд░ рдПрд░реЛ рдлрдВрдХреНрд╢рди рдХрд░реЗрдВ


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

 const car = { maker: 'Ford', model: 'Fiesta', drive: () => {   console.log(`Driving a ${this.maker} ${this.model} car!`) } } car.drive() //Driving a undefined undefined car! 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд╛рд░ рдирд┐рд░реНрдорд╛рддрд╛ рдФрд░ рдЗрд╕рдХреЗ рдореЙрдбрд▓ рдХреЗ рдирд╛рдореЛрдВ рдХреЗ рдмрдЬрд╛рдп, undefined рдорд╛рди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрд╣рд╛ рд╣реИ, this рддреАрд░ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЙрд╕ рд╕рдВрджрд░реНрдн рдХрд╛ рд▓рд┐рдВрдХ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИред

рдпрд╣ рддреАрд░ рдПрдХ рддреАрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

This рдЗрд╕рдХреЛ рдмрд╛рдВрдзрдХрд░


рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ this рдмрдВрдзрди рдХреА рддрд░рд╣ рдПрдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИред рдЖрдк рдЗрд╕реЗ рдХрдИ рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдЗрд╕ рдХреАрд╡рд░реНрдб рдХреЛ bind() рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ bind() ред

 const car = { maker: 'Ford', model: 'Fiesta' } const drive = function() { console.log(`Driving a ${this.maker} ${this.model} car!`) }.bind(car) drive() //Driving a Ford Fiesta car! 

рдЙрд╕реА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд╕реНрддреБ рдХреЛ рдПрдХ рд╡рд╕реНрддреБ рдХреА рд╡рд┐рдзрд┐ рд╕реЗ рдмрд╛рдВрдз рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ред

 const car = { maker: 'Ford', model: 'Fiesta', drive() {   console.log(`Driving a ${this.maker} ${this.model} car!`) } } const anotherCar = { maker: 'Audi', model: 'A4' } car.drive.bind(anotherCar)() //Driving a Audi A4 car! 

рдпрд╣ рдмрдВрдзрди call() рдФрд░ apply() рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдЪрд░рдг рдореЗрдВ рднреА рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

 const car = { maker: 'Ford', model: 'Fiesta' } const drive = function(kmh) { console.log(`Driving a ${this.maker} ${this.model} car at ${kmh} km/h!`) } drive.call(car, 100) //Driving a Ford Fiesta car at 100 km/h! drive.apply(car, [100]) //Driving a Ford Fiesta car at 100 km/h! 

this рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реИред рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ apply() , рджреВрд╕рд░реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд╛рд╕ рджрд┐рдП рдЧрдП рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рд▓реЗрддрд╛ рд╣реИ, рдФрд░ call() рддрд░реНрдХреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд▓реЗрддрд╛ рд╣реИред

Hand рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░реНрд╕ рдореЗрдВ рдЗрд╕ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


рдИрд╡реЗрдВрдЯрдмреИрдХ рдХреЙрд▓рдмреИрдХ рдореЗрдВ, this HTML рддрддреНрд╡ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдИрд╡реЗрдВрдЯ рд╣реБрдЖред рдХреЙрд▓рдмреИрдХ рдореЗрдВ рдмрд╛рдБрдзрдиреЗ рдХреЗ рд▓рд┐рдП, this рд░реВрдк рдореЗрдВ, рдХреБрдЫ рдФрд░, рдЖрдк bind() рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

 <!DOCTYPE html> <html> <body>   <button id="el">Element (this)</button>   <button id="win">Window (this</button>   <script>     const el = document.getElementById("el")     el.addEventListener('click', function () {         alert(this) //object HTMLButtonElement     })     const win = document.getElementById("win")     win.addEventListener('click', function () {         alert(this) //object Window     }.bind(this))   </script> </body> </html> 

рдШрдЯрдирд╛рдУрдВ


рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рдШрдЯрдирд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпреЗ рдпрд╛ рдЕрдиреНрдп рдХреНрд░рд┐рдпрд╛рдПрдВ рдШрдЯрдирд╛рдУрдВ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИрдВред рдЗрд╕ рдЦрдВрдб рдореЗрдВ, рд╣рдо рдШрдЯрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓реЗрдВрдЧреЗред

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

тЦНрдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░


рдЖрдк рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдИрд╡реЗрдВрдЯ рдХрд╛ рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╡реЗрдВрдЯ рд╣реЛрдиреЗ рдкрд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЙрд╕реА рдШрдЯрдирд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХрдИ рд╣реИрдВрдбрд▓рд░ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдпрд╣ рдШрдЯрдирд╛ рд╣реЛрдиреЗ рдкрд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдШрдЯрдирд╛ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕реЗ рддреАрди рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

Event рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░


рдЖрдЬрдХрд▓, рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдЕрдкрдиреА рд╕реАрдорд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ, рд╡реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рдереЗред рдЗрд╕ рддрд░рд╣ рдХреЗ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдХреЛрдб рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рддрддреНрд╡ рдХреЗ HTML рдорд╛рд░реНрдХрдЕрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, onclick рдИрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рд╕рд░рд▓ рд╣реИрдВрдбрд▓рд░ рдЬреЛ рдмрдЯрди рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рд╣реЛрддрд╛ рд╣реИ, Button 1 рд▓реЗрдмрд▓ рд╡рд╛рд▓реЗ Button 1 рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рддрд╛ рд╣реИред

 <!DOCTYPE html> <html> <body>   <button onclick="alert('Button 1!')">Button 1</button>   <button onclick="doSomething()">Button 2</button>   <script>       function doSomething(){           const str = 'Button 2!'           console.log(str)           alert(str)       }       </script> </body> </html> 

Button 2 рдХреЗ рд▓рд┐рдП HTML рдХреЛрдб рдПрдХ рд╕рдорд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдХреЛрдб рдПрдХ рдмрдЯрди рдХреНрд▓рд┐рдХ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдХреЛрдб рджрд┐рдП рдЧрдП рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╣реА рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рдВрдбреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред

тЦН рдПрдЪрдЯреАрдПрдордПрд▓ рдПрд▓рд┐рдореЗрдВрдЯ рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ рд╣реИрдВрдбрд▓рд░ рд╕реМрдВрдкрдирд╛


рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХрд╛ рдпрд╣ рддрд░реАрдХрд╛ рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ рдЬрдм рдХрд┐рд╕реА рддрддреНрд╡ рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдИрд╡реЗрдВрдЯ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реИрдВрдбрд▓рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдореЗрдВ рддрддреНрд╡ рдХреА рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдлрд╝рдВрдХреНрд╢рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, window рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ onload , рдЬрд┐рд╕реЗ рдкреЗрдЬ рдХреЗ HTML рдХреЛрдб рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд╕рд╛рдзрди, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╢реИрд▓реА рдФрд░ рдЪрд┐рддреНрд░ред рдпрджрд┐ рдЖрдк рдЗрд╕ рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрдВрдбрд▓рд░ рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЬрдм рдЖрдк рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдиреЗ рдкреГрд╖реНрда рдХреА рд╕рднреА рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдк рдЕрдм рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдбрд░ рдХреЗ рдмрд┐рдирд╛ рдХрд┐ рдкреГрд╖реНрда рдХреЗ рдХреБрдЫ рддрддреНрд╡ рдЕрднреА рддрдХ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВред

 window.onload = () => {   alert('Hi!') //   } 

XHR рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп рдЕрдХреНрд╕рд░ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдПрдХ рдЕрдиреБрд░реЛрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди, рдЖрдк рдЗрд╕рдХреЗ рдСрдиреНрд░реЗрдбрд┐рд╕реНрдЯреЗрдЯрдЪреЗрдВрдЬ рдЗрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрдВрдбрд▓рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рддрдм рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рдЗрд╕рдХреА рддреИрдпрд╛рд░ рд╕рдВрдкрддреНрддрд┐ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИред JSON рдбреЗрдЯрд╛ рдХреЛ рдХрд┐рд╕реА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ API рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред

 <!DOCTYPE html> <html> <body>   <button onclick="loadData()">Start</button>   <script>       function loadData (){           const xhr = new XMLHttpRequest()           const method = 'GET'           const url = 'https://jsonplaceholder.typicode.com/todos/1'           xhr.open(method, url, true)           xhr.onreadystatechange = function () {               if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {                   console.log(xhr.responseText)               }           }           xhr.send()      }       </script> </body> </html> 

рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдХрд┐рд╕реА рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХрд┐рд╕реА рдирд┐рд╢реНрдЪрд┐рдд рдШрдЯрдирд╛ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдк рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 if (window.onload){} 

AddEventListener () рд╡рд┐рдзрд┐ рдХрд╛ рдкреНрд░рдпреЛрдЧ


addEventListener() рд╡рд┐рдзрд┐, рдЬрд┐рд╕реЗ рд╣рдо рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦ рдЪреБрдХреЗ рд╣реИрдВ, рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдирд┐рдпрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЖрдзреБрдирд┐рдХ рддрдВрддреНрд░ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рд╣реА рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП рдХрдИ рд╣реИрдВрдбрд▓рд░ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

 window.addEventListener('load', () => { //  }) 

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ IE8 рдмреНрд░рд╛рдЙрдЬрд╝рд░ (рдФрд░ рдЗрд╕рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг) addEventListener() рд╡рд┐рдзрд┐ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рд╕рдорд╛рди attachEvent() рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдкреБрд░рд╛рдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

Lers рд╡рд┐рднрд┐рдиреНрди рддрддреНрд╡реЛрдВ рдХреЛ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рд╕реМрдВрдкрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


рдЖрдк рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ "рдЧреНрд▓реЛрдмрд▓" рдИрд╡реЗрдВрдЯреНрд╕ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП window рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХреАрдмреЛрд░реНрдб рдкрд░ рдмрдЯрди рджрдмрд╛рдирд╛ред рдЙрд╕реА рд╕рдордп, рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд HTML рддрддреНрд╡реЛрдВ рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЗрди рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рдЙрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, addEventListener() рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ window рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рд╕рд╛рдзрд╛рд░рдг рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рджреЛрдиреЛрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

тЦН рдШрдЯрдирд╛ рд╡рд╕реНрддреБ


рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдПрдХ рдИрд╡реЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ - Event рд▓реЗ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЧреБрдгреЛрдВ рдХрд╛ рд╕реЗрдЯ рдЙрд╕ рдШрдЯрдирд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдХреЛрдб рд╣реИ рдЬреЛ рдХрд┐ keydown рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ keydown рдЗрд╡реЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреАрдмреЛрд░реНрдб рдХреАрд╕реНрдЯреНрд░реЛрдХреЗ рдЗрд╡реЗрдВрдЯреНрд╕ рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░рддрд╛ рд╣реИред

 <!DOCTYPE html> <html> <body>   <script>       window.addEventListener('keydown', event => {           //              console.log(event.type, event.key)       })       window.addEventListener('mousedown', event => {           //             //0 -  , 2 -            console.log(event.type, event.button, event.clientX, event.clientY)       })   </script> </body> </html> 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рдХрдВрд╕реЛрд▓ рдХреЗ рд▓рд┐рдП рджрдмрд╛рдП рдЧрдП рдХреБрдВрдЬреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, key рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред type рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣рд╛рдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдШрдЯрдирд╛ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ KeyboardEvent рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреАрдмреЛрд░реНрдб рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдШрдЯрдирд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдИрд╡реЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╡рдВрд╢рдЬ рд╣реИред рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдЧрдИ рд╡рд╕реНрддреБрдПрдБ рдПрдХ рдорд╛рдирдХ рдИрд╡реЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреА рд╣реИрдВред

рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдорд╛рдЙрд╕ рдЗрд╡реЗрдВрдЯ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдЙрд╕рдЗрд╡реЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред mousedown рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ, рд╣рдо рдХреНрд▓рд┐рдХ рдХреЗ рд╕рдордп рдХрдВрд╕реЛрд▓ рдХреЗ рдкреНрд░рдХрд╛рд░, рдмрдЯрди рд╕рдВрдЦреНрдпрд╛ ( button рдкреНрд░реЙрдкрд░реНрдЯреА) рдФрд░ рдкреЙрдЗрдВрдЯрд░ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ ( clientX рдФрд░ clientY ) рдкрд░ clientY ред

рдбреНрд░реИрдЧрд╡реЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреГрд╖реНрда рддрддреНрд╡реЛрдВ рдХреЛ рдЦреАрдВрдЪрддреЗ рд╕рдордп рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

Sur рдЗрд╡реЗрдВрдЯ рд╕рд░реНрдлрд┐рдВрдЧ


рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

 <!DOCTYPE html> <html>   <head>       <style>           #container {               height: 100px;               width: 200px;               background-color: blue;           }           #child {               height: 50px;               width: 100px;               background-color: green;           }       </style>   </head>   <body>   <div id="container">       <div id="child">       </div>   </div>   <script>       const contDiv = document.getElementById('container')       contDiv.addEventListener('click', event => {           console.log('container')       })       const chDiv = document.getElementById('child')       chDiv.addEventListener('click', event => {           console.log('child')       })       window.addEventListener('click', event => {           console.log('window')       })       </script> </body> </html> 

рдпрджрд┐ рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рдкреГрд╖реНрда рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдХрдВрд╕реЛрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рдкреГрд╖реНрда рдХреЗ рдореБрдХреНрдд рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкрд╣рд▓реЗ рдорд╛рдЙрд╕ рдХреЛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдлрд┐рд░ рдиреАрд▓реЗ рдЖрдпрдд рдореЗрдВ, рдФрд░ рдлрд┐рд░ рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдВрд╕реЛрд▓ рдореЗрдВ рдорд┐рд▓реЗрдЧрд╛:

 window container window child container window 


рдШрдЯрдирд╛ рдмреБрджрдмреБрджрд╛рдИ

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

stopPropagation() рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ stopPropagation() рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╡реЗрдВрдЯ stopPropagation() рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐, child рддрддреНрд╡ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рдВрдмрдВрдзрд┐рдд рдШрдЯрдирд╛ рдЖрдЧреЗ рдирд╣реАрдВ рдлреИрд▓рддреА рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЙрд╕ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рд╣рдо click рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ click ред

 chDiv.addEventListener('click', event => {   console.log('child')   event.stopPropagation() }) 

, , тАФ , тАФ container , тАФ child , .

 window container window child 

тЦН


, .

load


load window . , , HTML- body .


click . dblclick тАФ . click dblclick , click , тАФ dblclick . mousedown , mousemove , mouseup , . , mousemove , , , . , - , . .


keydown . , . тАФ keyup .

scroll


scroll window . , , , window.scrollY .

, , mousemove , .


mousemove scroll . - . . ┬л┬╗ (throttling), Lodash . , , , , . .

 let cached = null window.addEventListener('mousemove', event => {   if (!cached) {       setTimeout(() => {           //     cached           console.log(cached.clientX, cached.clientY)           cached = null           }, 100)   }   cached = event }) 

, mousemove , 100 .

ES-


ES6 , ES-. , , -, , Node.js, .

, . , , . , , .

Node.js CommonJS. , ES-, , . , , ES-, , , , . , caniuse.com , 2018 ES- 80%.

ES- Node.js.

тЦН ES-


Node.js ES- .

 import package from 'module-name' 

CommonJS- .

 const package = require('module-name') 

, JavaScript-, - . рдпрд╣ export рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред , , , , uppercase.js . .

 export default str => str.toUpperCase() 

, . .
( , ) .

HTML- , <script> type="module" .

 <script type="module" src="index.js"></script> 

, (defer) . , , uppercase.js , , , . -. , -. , VSCode, Live Server ( тАФ ritwickdey.liveserver).

 <!DOCTYPE html> <html> <head> </head> <body>   <script type="module">     import toUpperCase from './uppercase.js'     console.log(toUpperCase('hello'))   </script> </body> </html> 

HELLO .

URL.

 import toUpperCase from 'https://flavio-es-modules-example.glitch.me/uppercase.js' 

, , ./ / .

тЦН


, .

 export default str => str.toUpperCase() 

.

 const a = 1 const b = 2 const c = 3 export { a, b, c } 

module.js , , , .

 <html> <head> </head> <body>   <script type="module">     import * as m from './module.js'     console.log(ma, mb, mc)   </script> </body> </html> 

1 2 3 .

, , .

 import { a } from './module.js' import { a, b } from './module.js' 

, , .

 console.log(a) 

:

 import { a, b as two } from './module.js' 

, , , , . module.js .

 const a = 1 const b = 2 const c = 3 export { a, b, c } export default () => console.log('hi') 

.

 import sayHi, { a } from './module.js' console.log(a) sayHi() 

.

тЦНCORS


CORS . , CORS, ( Access-Control-Allow-Origin: * ).

тЦН nomodule


, , , script , nomodule . , , .

 <script type="module" src="module.js"></script> <script nomodule src="fallback.js"></script> 

тЦН ES6 WebPack


ES6 тАФ , , ECMAScript. , , , , . , WebPack, , , .

тЦН CommonJS


, Node.js CommonJS. , . CommonJS npm.

CommonJS-, , . , up-node.js .

 exports.uppercase = str => str.toUpperCase() 

, .

 const up = require('./up-node.js') console.log(up.uppercase('hello')) 

HELLO .

, npm, , .

 const package = require('module-name') 

CommonJS , . .

CommonJS- .

 exports.a = 1 exports.b = 2 exports.c = 3 

, .

 const { a, b, c } = require('./up-node.js') 


, JavaScript тАФ . Math , . , , JS- .

тЦН


(+)


+ . :

 const three = 1 + 2 //3 const four = three + 1 //4 

, , , .

 'three' + 1 // three1 

(-)


 const two = 4 - 2 //2 

(/)


.

 20 / 5 //4 20 / 7 //2.857142857142857 

0, . Infinity ( ) - Infinity ( ).

 1 / 0 //Infinity -1 / 0 //-Infinity 

(%)


% , .

 20 % 5 //0 20 % 7 //6 

0 NaN (Not a Number тАФ ).

 1 % 0 //NaN -1 % 0 //NaN 

(*)


 1 * 2 //2 -1 * 2 //-2 

(**)


, .

 1 ** 2 //1 2 ** 1 //2 2 ** 2 //4 2 ** 8 //256 8 ** 2 //64 

тЦН


(++)


++ 1 . .

тАФ 1 , .

 let x = 0 ++x //1 x //1 

тАФ , .

 let x = 0 x++ //0 x //1 

(--)


-- ++ , 1 , .

 let x = 0 x-- //0 x //-1 --x //-2 

(-)


.

 let x = 2 -x //-2 x //2 

(+)


, , . тАФ .

 let x = 2 +x //2 x = '2' +x //2 x = '2a' +x //NaN 

тЦН


JavaScript, ( = ), , . , , += .

 let x = 2 x += 3 x //5 

: ┬л , , , , ┬╗. , .

 let x = 2 x = x + 3 x //5 

:

  • -=
  • *=
  • /=
  • %=
  • **=

тЦН


. , .

 const a = 1 * 2 + 5 / 2 % 2 

2.5 . , . , .

  • - + ++ -- тАФ ,
  • / % тАФ , ,
  • + - тАФ
  • = += -= *= /= %= **= тАФ

, , . , .

 const a = 1 * 2 + 5 / 2 % 2 const a = 2 + 2.5 % 2 const a = 2 + 0.5 const a = 2.5 

. .

 const a = 1 * (2 + 5) / 2 % 2 

1.5 .

тЦН Math


Math , . . , .

, , Math.E тАФ , e, Math.PI тАФ , ╧А.

 Math.E // 2.718281828459045 Math.PI //3.141592653589793 

.

  • Math.abs() тАФ
  • Math.ceil() тАФ , ,
  • Math.cos() тАФ ,
  • Math.floor() тАФ , ,
  • Math.max() тАФ
  • Math.min() тАФ
  • Math.random() тАФ [0, 1) ( 1)
  • Math.round() тАФ
  • Math.sqrt() тАФ

тЦН


JavaScript , .

  • == тАФ . .
  • != тАФ .

, . , , , .

  • === тАФ
  • !== тАФ

.

  • < тАФ ┬л┬╗
  • > тАФ ┬л┬╗.
  • <= тАФ ┬л ┬╗.
  • >= тАФ ┬л ┬╗.

, .

 1 === true //false 1 == true //true 

, , 1 true . 1 true , 1 true .


, , . Node.js. , :


PDF- Node.js.

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


, this, , , . , ES6.

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! , JavaScript?

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


All Articles