рдЖрдЬ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рдпрдорд╛рд╡рд▓реА рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд╕рд╛рддрд╡реЗрдВ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рдХрдбрд╝рд╛рдИ рд╕реЗ рдореЛрдб рдореЗрдВ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ, рдЗрд╕ рдХреАрд╡рд░реНрдб рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдШрдЯрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЧрдгрд┐рддреАрдп рдЧрдгрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдпрд╣рд╛рдВ рд╣рдо рдЯрд╛рдЗрдорд░ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд╖рдпреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░реЗрдВрдЧреЗред
тЖТ
рднрд╛рдЧ 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
рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ, рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ред
рд╡реИрд╕реЗ, рдЕрдЧрд░ рдРрд░реЛ рдлрдВрдХреНрд╢рди рдХреА рдШреЛрд╖рдгрд╛ рдХреЗ рджреМрд░рд╛рди рдЗрд╕рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдПрдХ рд╣реА рдирд╛рдо рд╣реЛрдЧрд╛, рддреЛ рдпрд╣, рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рдореЗрдВ, рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред
Values тАЛтАЛрдЕрд╖реНрдЯрдо рднрд╛рд╡
рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдЖрдк рд╢реБрд░реБрдЖрдд рдореЗрдВ
0
рдЬреЛрдбрд╝рдХрд░ рдЕрд╖реНрдЯ рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
;(() => { console.log(010) })()
рдпрд╣рд╛рдВ, рдСрдХреНрдЯрд▓ рдирдВрдмрд░
10
, рдпрд╛рдиреА
8
рдХрд╛ рджрд╢рдорд▓рд╡ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдорд┐рд▓реЗрдЧрд╛ред рдпрд╣
0
рд╕реЗ рдкрд╣рд▓реЗ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ, рдЖрдк рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрд╖реНрдЯрдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЛ рд╕рдЦреНрдд рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдСрдХреНрдЯрд▓ рдирдВрдмрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ
0oXX
рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдирд┐рдореНрди рдХреЛрдб рднреА
8
рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛ред
;(() => { 'use strict' console.log(0o10) })()
тЦН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()
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рд╕рд╛рдорд╛рдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдФрд░ рди рдХрд┐ рддреАрд░ рдПрдХ - рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ), рдпрд╣ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреАрд╡рд░реНрдб рдЬрд┐рд╕рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рд╡рд╛рд▓реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡рд╕реНрддреБ рд╡рд┐рдзрд┐ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рдзрд┐ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
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()
Word рдЗрд╕рдХреЛ рдХреАрд╡рд░реНрдб рдХрд░реЗрдВ рдФрд░ рдПрд░реЛ рдлрдВрдХреНрд╢рди рдХрд░реЗрдВ
рдЖрдЗрдП, рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд┐рдзрд┐, рдПрдХ рддреАрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ, рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
const car = { maker: 'Ford', model: 'Fiesta', drive: () => { console.log(`Driving a ${this.maker} ${this.model} car!`) } } car.drive()
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд╛рд░ рдирд┐рд░реНрдорд╛рддрд╛ рдФрд░ рдЗрд╕рдХреЗ рдореЙрдбрд▓ рдХреЗ рдирд╛рдореЛрдВ рдХреЗ рдмрдЬрд╛рдп,
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()
рдЙрд╕реА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд╕реНрддреБ рдХреЛ рдПрдХ рд╡рд╕реНрддреБ рдХреА рд╡рд┐рдзрд┐ рд╕реЗ рдмрд╛рдВрдз рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ред
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)()
рдпрд╣ рдмрдВрдзрди
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)
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) </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 => { </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(() => {
,
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
, , , .
'three' + 1
(-)
const two = 4 - 2
(/)
.
20 / 5
0, .
Infinity
( ) -
Infinity
( ).
1 / 0
(%)
%
, .
20 % 5
0
NaN
(Not a Number тАФ ).
1 % 0
(*)
1 * 2
(**)
, .
1 ** 2
тЦН
(++)
++
1
. .
тАФ
1
, .
let x = 0 ++x
тАФ , .
let x = 0 x++
(--)
--
++
,
1
, .
let x = 0 x--
(-)
.
let x = 2 -x
(+)
, , . тАФ .
let x = 2 +x
тЦН
JavaScript, (
=
), , . , ,
+=
.
let x = 2 x += 3 x
: ┬л , , , , ┬╗. , .
let x = 2 x = x + 3 x
:
тЦН
. , .
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
.
Math.abs()
тАФMath.ceil()
тАФ , ,Math.cos()
тАФ ,Math.floor()
тАФ , ,Math.max()
тАФMath.min()
тАФMath.random()
тАФ [0, 1) ( 1)Math.round()
тАФMath.sqrt()
тАФ
тЦН
JavaScript , .
, . , , , .
.
<
тАФ ┬л┬╗>
тАФ ┬л┬╗.<=
тАФ ┬л ┬╗.>=
тАФ ┬л ┬╗.
, .
1 === true
, ,
1
true
.
1
true
,
1
true
.
, , . Node.js. , :
PDF- Node.js.
рдкрд░рд┐рдгрд╛рдо
, this, , , . , ES6.
рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! , JavaScript?
