рдИрдПрд╕ 6 рдХрд╛ рдкрд░рд┐рдЪрдп
рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛1. рдЯреЗрдореНрдкрд▓реЗрдЯ рд╢рд╛рдмреНрджрд┐рдХ2. рд▓реЗрдЯ рдФрд░ рдХрд╛рд╕реНрдЯ3. рдПрд░реЛ рдлрдВрдХреНрд╢рди рдПрдХреНрд╕рдкреНрд░реЗрд╢рди4. рдХреЗ рд▓рд┐рдП5. рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо6. рдСрдмреНрдЬреЗрдХреНрдЯ.рд╕рд╛рдЗрди ()рдмрд╛рдХреА рдкреИрд░рд╛рдореАрдЯрд░8. рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░9. рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдХрд╛рд░реНрдп10. рдирдХреНрд╢рд╛11. рд╕реЗрдЯ рдХрд░реЗрдВ12. рдХрдХреНрд╖рд╛рдПрдВ13. рд╡рд╛рджрд╛14. Iterators15. рдЬрдирдХ16. рд╕реБрдВрдмреЛрд▓рдЯреЗрдореНрдкрд▓реЗрдЯ рд╢рд╛рдмреНрджрд┐рдХ (рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕)
рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╢рд╛рдмреНрджрд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢рд╛рдмреНрджрд┐рдХ рд╣реИрдВ рдЬреЛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЕрдВрджрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдЙрдирдХреЗ рд╕рд╛рде рдЖрдк рдмрд╣реБрд╕реНрддрд░реАрдп рд╢рд╛рдмреНрджрд┐рдХ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХреНрд╖реЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЯреЗрдореНрдкрд▓реЗрдЯ рд╢рд╛рдмреНрджрд┐рдХ рдбрдмрд▓ рдпрд╛ рд╕рд┐рдВрдЧрд▓ рдХреЗ рдмрдЬрд╛рдп рдмреИрдХрдЯрд┐рдХреНрд╕ (``) рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реИрдВред рд╡реЗ рдПрдХ рдбреЙрд▓рд░ рдЪрд┐рд╣реНрди рдФрд░ рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ ($ {рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐}) рджреНрд╡рд╛рд░рд╛ рдЪрд┐рд╣реНрдирд┐рдд рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рдХрд╛ рдкрд╛рда рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдлрд╝рдВрдХреНрд╢рди рдмрд╕ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╕рднреА рднрд╛рдЧреЛрдВ рдХреЛ рдорд┐рд▓рд╛рддрд╛ рд╣реИред рдпрджрд┐ рд░реЗрдЦрд╛ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИ (рдпрд╣рд╛рдБ рдпрд╣ рдЯреИрдЧ рд╣реИ), рддреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рд▓рд╛рдЗрди рдХреЛ "рдЯреИрдЧ рдЯреЗрдореНрдкрд▓реЗрдЯ" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЯреИрдЧ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ (рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди) рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рд╢рд╛рдмреНрджрд┐рдХ рдХреЗ рд╕рд╛рде рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдк рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╢рд╛рдмреНрджрд┐рдХреЛрдВ рдореЗрдВ рдмреИрдХрд╡реЛрдЯ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдмреИрдХрд╕реНрд▓реИрд╢ \ n рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред
рдмрд╣реБрднрд╛рд╖реА рд╢рд╛рдмреНрджрд┐рдХрдиреНрдпреВрд▓рд╛рдЗрди рд╡рд░реНрдг рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рд╢рд╛рдмреНрджрд┐рдХ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВред рдирд┐рдпрдорд┐рдд рддрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╕рдореНрдорд┐рд▓рди рд▓рдкреЗрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
console.log('string text line 1\n' + 'string text line 2');
рдЯреЗрдореНрдкрд▓реЗрдЯ рд╢рд╛рдмреНрджрд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рд╣реА:
console.log(`string text line 1 string text line 2`);
рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЗрдВрдЯрд░рдкреЛрд▓реЗрд╢рдирдирд┐рдпрдорд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдореЗрдВ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
var a = 5; var b = 10; console.log('Fifteen is ' + (a + b) + ' and not ' + (2 * a + b) + '.');
рдЕрдм, рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╢рд╛рдмреНрджрд┐рдХ рдХреА рдорджрдж рд╕реЗ, рдЖрдк `рд╕рд┐рдВрдЯреИрдХреНрдЯрд┐рдХ рд╢реБрдЧрд░` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЛ рдЕрдзрд┐рдХ рдкрдардиреАрдп рдмрдирд╛рддрд╛ рд╣реИ:
var a = 5; var b = 10; console.log(`Fifteen is ${a + b} and not ${2 * a + b}.`);
рдиреЗрд╕реНрдЯреЗрдб рдЯреЗрдореНрдкрд▓реЗрдЯрдХрдИ рдмрд╛рд░, рдПрдХ рдкреИрдЯрд░реНрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рдФрд░ рд╢рд╛рдпрдж рдЕрдзрд┐рдХ рдкрдардиреАрдп рддрд░реАрдХрд╛ рд╣реИред рдмрд╕ рдмреИрдХрдХреЛрдЯ рдХрд┐рдП рдЧрдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдФрд░ рдбрд╛рд▓ рджрд┐рдпрд╛, рдЙрдиреНрд╣реЗрдВ $ {} рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдореЗрдВ рд▓рдкреЗрдЯрдХрд░ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕рд╣реА рд╣реИ, рддреЛ рдЖрдк рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╢рд╛рдмреНрджрд┐рдХ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
ES5 рдореЗрдВ:
var classes = 'header' classes += (isLargeScreen() ? '' : item.isCollapsed ? ' icon-expander' : ' icon-collapser');
ES2015 рдореЗрдВ рдиреЗрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╢рд╛рдмреНрджрд┐рдХ рдХреЗ рд╕рд╛рде:
const classes = `header ${ isLargeScreen() ? '' : (item.isCollapsed ? 'icon-expander' : 'icon-collapser') }`;
рдиреЗрд╕реНрдЯреЗрдб рдЯреЗрдореНрдкрд▓реЗрдЯ рд╢рд╛рдмреНрджрд┐рдХ рдХреЗ рд╕рд╛рде ES2015 рдореЗрдВ:
const classes = `header ${ isLargeScreen() ? '' : `icon-${item.isCollapsed ? 'expander' : 'collapser'}` }`;
рдЯреИрдЧ рдЯреЗрдореНрдкреНрд▓реЗрдЯрдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╢рд╛рдмреНрджрд┐рдХреЛрдВ рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд░реВрдк рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЯреИрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡реЗ рдЖрдкрдХреЛ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╢рд╛рдмреНрджрд┐рдХрддрд╛ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдРрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд╣рд▓реЗ рддрд░реНрдХ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рдиреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реЛрддреА рд╣реИ, рдФрд░ рдмрд╛рдХреА рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕реЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реЛрддреА рд╣реИред рдирддреАрдЬрддрди, рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЗрдХрдЯреНрдареЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ (рдпрд╛ рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ, рдЬреИрд╕рд╛ рдХрд┐ рдмрд╛рдж рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛) рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
var person = 'Mike'; var age = 28; function myTag(strings, personExp, ageExp) { var str0 = strings[0];
рдЯреИрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред
рдХрдЪреНрдЪреА рд░реЗрдЦрд╛рдПрдБрдЯреИрдЧ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╡рд┐рд╢реЗрд╖ рдХрдЪреНрдЪреА рд╕рдВрдкрддреНрддрд┐, рдЖрдкрдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЙрд╕ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рдмрд┐рдирд╛ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
function tag(strings) { return strings.raw[0]; } tag`string text line 1 \\n string text line 2`;
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ String.raw () рдкрджреНрдзрддрд┐ рд╣реИ рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдорд╛рди рд╕реНрд░реЛрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддреА рд╣реИ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрдпреЛрдЬрди рдПрдХ рд╕рд╛рде рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреАред
ECMAScript 2016 рдореЗрдВ, рдЯреИрдЧ рдХрд┐рдП рдЧрдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд░реНрдгреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ:
- рдпреВрдирд┐рдХреЛрдб рд╡рд░реНрдг "\ u" рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, \ u00A9
- рдпреВрдирд┐рдХреЛрдб рдХреЛрдб рдкреЙрдЗрдВрдЯ "\ u {}" рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, \ u {2F804}
- рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдЪрд░рд┐рддреНрд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ "\ x" рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, \ xA9
- "" рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрдгреЛрдВ рдХрд╛ рдЕрд╖реНрдЯрдХ рдирд┐рд░реВрдкрдг, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, \ 251
рдЪрд▓реЛ рдФрд░ рдХрд╛рд╕реНрдЯ
рд▓реЗрдЯ рдФрд░ рдХреЙрдиреНрд╕реНрдЯреЗрдмрд▓ рдХреАрд╡рд░реНрдб рджреНрд╡рд╛рд░рд╛ рдШреЛрд╖рд┐рдд рдЪрд░ рдХрд╛ рджрд╛рдпрд░рд╛ рд╡рд╣ рдмреНрд▓реЙрдХ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕рднреА рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ, рд▓реЗрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд┐рд╡ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди, рд╡реИрд░ рдбрд╛рдпрд░реЗрдХреНрдЯрд┐рд╡ рдХреЗ рд╕рдорд╛рди рд╣реИред рдореБрдЦреНрдп рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЪрд░ рдирд┐рд░реНрджреЗрд╢ рджреНрд╡рд╛рд░рд╛ рдШреЛрд╖рд┐рдд рдЪрд░ рдХрд╛ рджрд╛рдпрд░рд╛ рд╕рдВрдкреВрд░реНрдг рдХрд╛рд░реНрдп рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЪрд░реЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдПрдХ рдирдП рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рди рд╣реА рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреЙрдиреНрд╕реНрдЯреЗрдмрд▓ рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡реИрд░рд┐рдПрдмрд▓ рдХреЗ рд╡рд┐рдкрд░реАрдд рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдерд┐рд░рд╛рдВрдХ рд╡рд┐рдВрдбреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЧреБрдг рдирд╣реАрдВ рдмрдирддреЗ рд╣реИрдВред
рдПрдХ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЖрдкрдХреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдХ рдореВрд▓реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдШреЛрд╖рдгрд╛ (рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рдлрд┐рд░ рдпрд╣ рдорд╛рди рдЕрдм рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред
рдХреЙрдиреНрд╕реНрдЯреЗрдмрд▓ рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рде рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЛ рдбрд┐рдХреНрд▓реЗрдпрд░ рдХрд░рдиреЗ рд╕реЗ рдПрдХ рд╕реНрдерд┐рд░рд╛рдВрдХ (рдореЗрдореЛрд░реА рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рдирдпрд╛ рдирд╛рдо рд░реЗрдлрд░реЗрдВрд╕) рдмрдирддрд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИред
рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рдВрдХреЗрддрд┐рдд рдореВрд▓реНрдп рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдЖрд╢реНрд╡рд╕реНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХреЛрдИ рд╡рд╕реНрддреБ рдХрд┐рд╕реА рд╕реНрдерд┐рд░ рдмрд┐рдВрджреБ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреА рд╣реИ, рддреЛ рд╡рд╕реНрддреБ рдХреЛ рд╣реА рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рдирд╛рдо рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рд╕рдорд╛рди рджрд╛рдпрд░реЗ рдХреЗ рдЪрд░ рдХреЗ рдирд╛рдореЛрдВ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╡реИрд╢реНрд╡рд┐рдХ рдФрд░ рдмреНрд▓реЙрдХ рджрд╛рдпрд░реЗ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
function myFunction() { if (true) let a = 5; console.log(a);
рдПрд░реЛ рдлрдВрдХреНрд╢рди рдПрдХреНрд╕рдкреНрд░реЗрд╢рди
рдПрд░реЛ рдлрдВрдХреНрд╢рди рдПрдХреНрд╕рдкреНрд░реЗрд╢рдВрд╕ рдореЗрдВ рдлрдВрдХреНрд╢рдирд▓ рдПрдХреНрд╕рдкреНрд░реЗрд╢рдВрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЫреЛрдЯрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд▓реЗрдХреНрд╕рд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕ рдХреЗ рдорд╛рди рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ (рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЖрд░реНрдЧреНрдпреБрдореЗрдВрдЯреНрд╕, рд╕реБрдкрд░ рдпрд╛ рдиреНрдпреВрдЯрд╛рд░реНрдЧреЗрдЯ)ред рдПрд░реЛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЖрдкрдХреЛ рдПрдХ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рддреАрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЕрдирд╛рдо рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╕реМрдВрдкрд╛ рдЬрд╛рдПред
рдореВрд▓ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ (param1, param2, тАж, paramN) => { statements } (param1, param2, тАж, paramN) => expression
рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕
рддреАрд░ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА, рдЖрдк
рдпрд╣рд╛рдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдХреЗ рд▓рд┐рдП ... рдХрд╛
рдХреЗ рд▓рд┐рдП ... рдХрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд▓реВрдк рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ (рд╕рд░рдгреА, рдорд╛рдирдЪрд┐рддреНрд░, рд╕реЗрдЯ, рддрд░реНрдХреЛрдВ рдХреА рдПрдХ рд╡рд╕реНрддреБ рдФрд░ рдЬреИрд╕реЗ), рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░ рдЖрд╣реНрд╡рд╛рди рдХрд░рддреЗ рд╣реБрдП рдСрдкрд░реЗрдЯрд░ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЧреБрдгреЛрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рди рдХреЗ рд▓рд┐рдП рдЪрд░рдгрдмрджреНрдз рдХрд░рддреЗ рд╣реИрдВред
рдХреНрдпреЛрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП ... рдХреЗ рд▓рд┐рдП рдкрд╛рд╢ рдореЗрдВ iterate рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП? рдХреНрдпреЛрдВрдХрд┐ рдЗрдВрдЬрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХреНрд░рдо рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкрд░рд┐рдгрд╛рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ рдФрд░ рдлрд┐рд░ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ, рддреЛ рд▓реВрдк рдореЗрдВ рдЗрд╕рдХрд╛ рдореВрд▓реНрдп рдЗрд╕рдХрд╛ рдЕрдВрддрд┐рдо рдореВрд▓реНрдп рд╣реИред рдЪрдХреНрд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рдЯрд╛ рджреА рдЧрдИ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдЗрд╕рдореЗрдВ рднрд╛рдЧ рдирд╣реАрдВ рд▓реЗрдЧреАред рд▓реВрдк рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рдЧреБрдгреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕реЗ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рджреМрд░рд╛рди рдХрд┐рд╕реА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЬреЛрдбрд╝рдирд╛, рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдпрд╛ рд╣рдЯрд╛рдирд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдмрд╛рдд рдХреА рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЬреЛрдбрд╝реЗ рдЧрдП рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдЪрдХреНрд░ рджреНрд╡рд╛рд░рд╛ рджреМрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреБрдирд░рд╛рд╡реГрддреНрдд рдЪрд░ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ, рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдЪрд░ рдХреЗ рд╕рд╛рде рдХреЛрдИ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрдЬрд╛рдп рддрд╛рд░реЛрдВ рдХреЛ рд╕рдорддрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рддреЛ рддрд╛рд░реНрдХрд┐рдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП!
рд▓реВрдк рдХреЗ рд▓рд┐рдП ... рд▓реВрдк рдХреЗ рд▓рд┐рдП ... рдХреЗ рд╡рд┐рдкрд░реАрдд, рд▓реВрдк рдореЗрдВ рд╕рднреА рдПрдиреНрдпреВрдорд░реЗрдЯреЗрдб рдкреНрд░реЙрдкрд░реНрдЯреАрдЬ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рдиреЙрди-рдкреВрд░реНрдгрд╛рдВрдХ рдирд╛рдо рдФрд░ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рдЪреАрдЬреЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рд▓реВрдк рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд▓рд┐рдП ... for (var i of arr)
рдЙрджрд╛рд╣рд░рдг:
Object.prototype.objCustom = function() {}; Array.prototype.arrCustom = function() {}; let iterable = [3, 5, 7]; iterable.foo = 'hello'; for (let i in iterable) console.log(i);
рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ objCustom рдкрджреНрдзрддрд┐ рдХреЛ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░реЗрдЧрд╛ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ Array Object.prototype рдФрд░ Array.prototype рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдмрдирд╛рдХрд░ arrCustom рдкрджреНрдзрддрд┐ рдХреЛ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░реЗрдЧрд╛ред рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рдУрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рдСрд░реНрдХреБрдЯреЛрдЯрд╛рдЗрдк рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛рдПрдЧрд╛ред
рд▓реВрдк рдХреЗрд╡рд▓ рдкреБрдирд░рд╛рд╡реГрддреНрдд рд╡рд╕реНрддреБ рдХреЗ рдкреНрд░рдЧрдгрд┐рдд рдЧреБрдгреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рд╡реЗ рдмрдирд╛рдП рдЧрдП рдереЗред рдпрд╣ рдорд╛рди 3, 5, 7 рдФрд░ рд╣реИрд▓реЛ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИрдВред рдЧреБрдгреЛрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдирд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, arrCustom рдФрд░ objCustomред
рд▓реВрдк рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП hasOwnProperty () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд╕реНрддреБ рдХреА рдпрд╣ рд╕рдВрдкрддреНрддрд┐ рдЕрдкрдиреА рд╣реИ рдпрд╛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╣реИред рдХреЗрд╡рд▓ рд╕реНрд╡рдпрдВ рдХреЗ рдЧреБрдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред 0, 1, 2 рдФрд░ foo рдирд╛рдо рдХреЗрд╡рд▓ рд╡рд╕реНрддреБ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╣реИрдВ (рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдирд╣реАрдВ)ред ArCustom рдФрд░ objCustom рддрд░реАрдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗ рд╣реИрдВред
рдпрд╣ рд▓реВрдк рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреБрдирд░рд╛рд╡реГрддреНрдд рд╡рд╕реНрддреБ рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЧреБрдг рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рд╕рд░рдгреА 3, 5, 7 рдХреЗ рдорд╛рдиред
рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо
рд╡рд╕реНрддреБрдУрдВ рдФрд░ рдЙрдирдХреЗ рддрддреНрд╡реЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдореЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдХреЛрд╖реНрдардХ [] рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╢рд╛рдмреНрджрд┐рдХ рдХреЗ рд╕рдорд╛рди рд╣реИред
рдкрд░рд┐рдХрд▓рд┐рдд рдирд╛рдореЛрдВ рдХрд╛ рдЙрджрд╛рд╣рд░рдг: var a = () => "world"; var a = { ["a" + (10 - 6)]: { ["some" + "string"]: true, [10 + 20]: 10, [`hello ${a()}`]: a() } }
Object.assign ()
Object.assign () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рд╕реНрд░реЛрдд рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рд▓рдХреНрд╖реНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдПрдиреНрдпреВрдорд░реЗрдЯреЗрдб рдЧреБрдгреЛрдВ рдХреЗ рдорд╛рди рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рд▓рдХреНрд╖реНрдп рд╡рд╕реНрддреБ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИред
Object.assign () рд╡рд┐рдзрд┐ рд╕реНрд░реЛрдд рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рд▓рдХреНрд╖рд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдиреНрдпреВрдорд░реЗрдЯреЗрдб рдФрд░ рджреЗрд╢реА рдЧреБрдгреЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддреА рд╣реИред рдпрд╣ рд╕реНрд░реЛрдд рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдЖрдВрддрд░рд┐рдХ [[рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ]] рд╡рд┐рдзрд┐ рдФрд░ рд▓рдХреНрд╖реНрдп рд╡рд╕реНрддреБ рдкрд░ рдЖрдВрддрд░рд┐рдХ [[рд╕реЗрдЯ]] рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЧреЗрдЯрд░реНрд╕ рдФрд░ рд╕реЗрдЯрд░ рднреА рдХрд╣рддрд╛ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдирдП рдЧреБрдгреЛрдВ рдХреА рдирдХрд▓ рдпрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЧреБрдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдореЗрдВ рдирдИ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдкрдпреБрдХреНрдд рд╡рд┐рдзрд┐ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЗрдВрдЬреЗрдХреНрд╢рди рд╕реНрд░реЛрдд рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЧреЗрдЯрд░реНрд╕ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЙрдирдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд╕рдВрдХреЗрдд рд╕рд╣рд┐рдд рд╕рдВрдкрддреНрддрд┐ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, Object.getOwnPropertyDescriptor () рдФрд░ Object.defineProperty () рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рдкреНрд░рддреАрдХ рджреЛрдиреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХреА рдирдХрд▓ рдХреА рдЬрд╛рддреА рд╣реИред
рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рд╕рдВрдкрддреНрддрд┐ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ TypeError рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд▓рдХреНрд╖реНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣рддрд╛ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдорд╛рди рд╢реВрдиреНрдп рдпрд╛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВ, рддреЛ Object.assign () рд╡рд┐рдзрд┐ рдЕрдкрд╡рд╛рдж рдХреЛ рдирд╣реАрдВ рдлреЗрдВрдХрддреА рд╣реИред
рдЙрджрд╛рд╣рд░рдг: рдПрдХ рд╡рд╕реНрддреБ рдХрд╛ рдХреНрд▓реЛрдирд┐рдВрдЧ var obj = { a: 1 }; var copy = Object.assign({}, obj); console.log(copy);
рдЙрджрд╛рд╣рд░рдг: рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╡рд┐рд▓рдп рдХрд░рдирд╛ var o1 = { a: 1 }; var o2 = { b: 2 }; var o3 = { c: 3 }; var obj = Object.assign(o1, o2, o3); console.log(obj);
рдмрд╛рдХреА рдкреИрд░рд╛рдореАрдЯрд░
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╢реЗрд╖ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЖрдкрдХреЛ рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдЕрд╕реАрдорд┐рдд рддрд░реНрдХ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдпрджрд┐ рдЕрдВрддрд┐рдо рдирд╛рдорд┐рдд рдлрд╝рдВрдХреНрд╢рди рддрд░реНрдХ рдореЗрдВ рдПрдХ рдЙрдкрд╕рд░реНрдЧ рд╣реИ ..., рддреЛ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд╛рд╕ рджрд┐рдП рдЧрдП рддрд░реНрдХреЛрдВ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ 0 рд╕реЗ theArgs.length рдХреЗ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдмрди рдЬрд╛рддрд╛ рд╣реИред
рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ function(a, b, ...theArgs) {
рд╢реЗрд╖ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг: function name (a, b, ...c) {} name (0, 1, 2, 3,)
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, a = 0 b = 1 c [0] = 2 c [1] = 3
рдпрджрд┐ рд╢реЗрд╖ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдЦрд╛рд▓реА рд╕рд░рдгреА рд╣реЛрдЧреА (рд╕рд╛рдзрд╛рд░рдг рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рдХрднреА рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реЛрдЧреА)ред
рдЗрд╕ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХреЗрд╡рд▓ рдлрд╝рдВрдХреНрд╢рди рддрд░реНрдХреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЕрдиреНрдп рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рднреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдФрд░ рд╕рдВрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП:
var a = [ 0, 1, 2 ]; var b = [ 3, 4, 5 ]; var c = [ ...a, ...b ];
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдЖрдкрдХреЛ рдФрдкрдЪрд╛рд░рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмрд┐рдирд╛ рддрд░реНрдХ рдХреЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рдпрджрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реИред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛ рдорд╛рдиреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЬрдм рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХреЛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХреЗрд╡рд▓ рдПрдХ рдФрдкрдЪрд╛рд░рд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ рдпрджрд┐, рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рджреМрд░рд╛рди, рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП рдорд╛рди рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдпрд╛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдерд╛ред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг: function myFun(a=5) { return a*a; } console.log(myFun());
рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдХрд╛рд░реНрдп
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХреНрд╕рдкреНрд░реЗрд╢рдВрд╕ рдореЗрдВ рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рд╕рд░рдгреА рдпрд╛ рд╢рд╛рдмреНрджрд┐рдХ рдХреА рдШреЛрд╖рдгрд╛ рдХреЗ рд╕рдорд╛рди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрд░реЗ рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдСрдмреНрдЬреЗрдХреНрдЯ рдпрд╛ рдРрд░реЗ рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдПрдХ рд╕рдЬрд╛рддреАрдп рдбреЗрдЯрд╛ рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдкреИрдХреЗрдЬ рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рддрд╛ рд╣реИред рдЖрдк рдЗрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рднреА рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдореБрдЦ рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдкрдврд╝рдирд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдк рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрдИ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд╛ рдЙрджрд╛рд╣рд░рдг: var a, b, rest; [a, b] = [1, 2]; console.log(a);
рдЖрдк
рдпрд╣рд╛рдВ рдФрд░ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдирдХреНрд╢рд╛
рдорд╛рдирдЪрд┐рддреНрд░ - рдореБрдЦреНрдп-рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗ рд╡рд╛рд▓реА рдПрдХ рд╡рд╕реНрддреБ рдФрд░ рд╕рдореНрдорд┐рд▓рди рдХреНрд░рдо рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдирд╛ред рдХрд┐рд╕реА рднреА рдореВрд▓реНрдп (рджреЛрдиреЛрдВ рд╡рд╕реНрддреБрдУрдВ рдФрд░ рдЖрджрд┐рдо) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдПрдХ рдЙрджрд╛рд╣рд░рдг: var myMap = new Map(); var keyObj = {}, keyFunc = function () {}, keyString = "a string";
рд╡рд╕реНрддреБ рд╕реЗ рдорд╛рдирдЪрд┐рддреНрд░ рдХрд╛ рдЕрдВрддрд░:- рдСрдмреНрдЬреЗрдХреНрдЯ рдХреБрдВрдЬрд┐рдпрд╛рдБ рд▓рд╛рдЗрдиреНрд╕ рдФрд░ рд╕рд┐рдВрдмрд▓ рд╣реИрдВ, рдЬрдмрдХрд┐ рдлрд╝рдВрдХреНрд╢рдВрд╕, рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдФрд░ рдкреНрд░рд╛рдЗрдорд┐рдЯрд┐рд╡реНрд╕ рд╕рд╣рд┐рдд рдХреЛрдИ рднреА рдорд╛рди рдореИрдк рдХреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
- рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдореИрдк рдореЗрдВ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдЖрджреЗрд╢ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдорд╛рдирдЪрд┐рддреНрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рджреМрд░рд╛рди, рдЪрд╛рдмрд┐рдпрд╛рдБ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреНрд░рдо рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреА рд╣реИрдВред
- рдЖрдк рдЖрдХрд╛рд░ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд╛рдирдЪрд┐рддреНрд░ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗрд╡рд▓ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
- рдорд╛рдирдЪрд┐рддреНрд░ рдПрдХ рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рд╡рд╕реНрддреБ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕реАрдзреЗ рдкреБрди: рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд╡рд╕реНрддреБ рдХреЛ рдХреБрдВрдЬреА рдХреА рд╕реВрдЪреА рдФрд░ рдЙрдирдХреЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреА рдореИрдиреНрдпреБрдЕрд▓ рд░рд╕реАрдж рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
- рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕рдореЗрдВ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдорд╛рдирдХ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рд▓рд╛рдкрд░рд╡рд╛рд╣ рд╣реЛрдиреЗ рдкрд░, рдЖрдкрдХреА рдЪрд╛рдмрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдВрддрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред ES5 рдХреА рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рдмрд╛рдж рд╕реЗ, рдЗрд╕реЗ map = Object.create (null) рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рдЪрд╛рдмрд┐рдпреЛрдВ рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдЬреЛрдбрд╝рдиреЗ рдпрд╛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдорд╛рдирдЪрд┐рддреНрд░ рдХрд╛ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЧреБрдг рдФрд░ рд╡рд┐рдзрд┐рдпрд╛рдБ:- Map.prototyp.size - рдПрдХ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдХреБрдВрдЬреА \ value рдЬреЛрдбрд╝реЗ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ
- Map.prototyp.set (рдХреБрдВрдЬреА, рдорд╛рди) - рдкрд╛рд╕ рдХрд┐рдП рдЧрдП key \ value рдЬреЛрдбрд╝реЗ рдХреЛ рдореИрдк рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреБрдВрдЬреА рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдпрд╣ рдирдП рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
- Map.prototyp.get (рдХреБрдВрдЬреА) - рдкрд╛рд░рд┐рдд рдХреБрдВрдЬреА рдХрд╛ рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдХреБрдВрдЬреА рдирд╣реАрдВ рд╣реИ, рддреЛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛
- Map.prototype.has (рдХреБрдВрдЬреА) - рдпрджрд┐ рдкрд╛рд╕ рдХреБрдВрдЬреА рдореМрдЬреВрдж рд╣реИ рдФрд░ рдпрд╣ рдирд╣реАрдВ рд╣реИ рддреЛ рдЧрд▓рдд рд╣реИ
- Map.prototyp.delete (рдХреБрдВрдЬреА) - рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА \ value рдЬреЛрдбрд╝реА рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рд╣реА рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдХреБрдВрдЬреА рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдЧрд▓рдд рджреЗрддрд╛ рд╣реИред
- Map.prototyp.clear () - рдореИрдк рд╕реЗ рд╕рднреА рдкреНрд░рдореБрдЦ \ value рдЬреЛрдбрд╝реЗ рдХреЛ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ
- Map.prototyp.keys () - рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рд▓реМрдЯрд╛рддрд╛ рд╣реИ
- Map.prototyp.values тАЛтАЛ() - рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рджреЗрддрд╛ рд╣реИ
- Map.prototyp.entries () - рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдореИрдк рдкрд░ рд╕рд░рдгреА [рдХреБрдВрдЬреА, рдореВрд▓реНрдп] рдХрд╛ рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рджреЗрддрд╛ рд╣реИ
рд╕реЗрдЯ
рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ, рдЖрджрд┐рдо рдФрд░ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЕрджреНрд╡рд┐рддреАрдп рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╕реЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдЙрди рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рддрддреНрд╡реЛрдВ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХреНрд░рдо рдореЗрдВ рдкрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕реЗрдЯ рдореЗрдВ рдПрдХ рддрддреНрд╡ рдХрд╛ рдореВрд▓реНрдп рдХреЗрд╡рд▓ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдореМрдЬреВрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╕реЗрдЯ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдЗрд╕рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЧреБрдг рдФрд░ рдЙрджрд╛рд╣рд░рдг рддрд░реАрдХреЗ рд╕реЗрдЯ рдХрд░реЗрдВ
- рдЖрдХрд╛рд░ - рд╕реЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
- add (value) - рд╕реЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рджрд┐рдП рдЧрдП рдорд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рддрддреНрд╡ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд╕реЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
- clear () - рд╕реЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИред
- рдбрд┐рд▓реАрдЯ (рдореВрд▓реНрдп) - рдорд╛рди рд╕реЗ рдЬреБрдбрд╝реЗ рддрддреНрд╡ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рдорд╛рди рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ (рдорд╛рди) рдкрд╣рд▓реЗ рд╣реЛрддрд╛ рд╣реИред рд╣реИ (рдорд╛рди) рдмрд╛рдж рдореЗрдВ рдЧрд▓рдд рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред
- рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ () - рдПрдХ рдирдпрд╛ Iterator рдСрдмреНрдЬреЗрдХреНрдЯ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рдореНрдорд┐рд▓рди рдХреНрд░рдо рдореЗрдВ рд╕реЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП [рдорд╛рди, рдорд╛рди] рдХреА рдПрдХ рд╕рд░рдгреА рд╣реЛрддреА рд╣реИред рдпрд╣ рдореИрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рдорд╛рди рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреА рдХреБрдВрдЬреА рдФрд░ рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рд╕рдорд╛рди рдореВрд▓реНрдп рд╣реИред
- forEach (callbackFn [, thisArg]) - рдХреЙрд▓рдмреИрдХ рдореЗрдВ рдПрдХ рдмрд╛рд░ рд╕реЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдореМрдЬреВрдж рдкреНрд░рддреНрдпреЗрдХ рдорд╛рди рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░реЗрдВред рдпрджрд┐ рдпрд╣ 'рдПрд░реНрдЧ' рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓рдмреИрдХ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
- has (value) - рдПрдХ рдмреВрд▓рд┐рдпрди рдорд╛рди рджреЗрддрд╛ рд╣реИ рдЬреЛ рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рджрд┐рдП рдЧрдП рдорд╛рди рд╡рд╛рд▓рд╛ рддрддреНрд╡ рд╕реЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ рдпрд╛ рдирд╣реАрдВред
- рдорд╛рди () - рдПрдХ рдирдпрд╛ Iterator рдСрдмреНрдЬреЗрдХреНрдЯ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рдореНрдорд┐рд▓рди рдХреНрд░рдо рдореЗрдВ рд╕реЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рд╕реЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ var mySet = new Set(); mySet.add(1);
рдмрд╛рдИрдкрд╛рд╕ рд╕реЗрдЯ
рдХрдХреНрд╖рд╛рдПрдВ
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрдХреНрд╖рд╛рдПрдВ ECMAScript 2015 рдореЗрдВ рд╢реБрд░реВ рдХреА рдЧрдИ рдереАрдВ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдкрд░ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдЪреАрдиреА рд╣реИрдВред рдХреНрд▓рд╛рд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдПрдХ рдирдП рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдореЙрдбрд▓ рдХреЛ рдкреЗрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдФрд░ рд╡рд┐рд░рд╛рд╕рдд рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдФрд░ рдЕрдзрд┐рдХ рд╕рд╣рдЬ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдХрдХреНрд╖рд╛рдПрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдп" рд╣реЛрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЬреИрд╕реЗ рдЖрдк рдлрд╝рдВрдХреНрд╢рди (рдлрд╝рдВрдХреНрд╢рди рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдШреЛрд╖рдгрд╛рдПрдБ) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЖрдк рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдХреНрд▓рд╛рд╕ рдПрдирд╛рдЙрдВрд╕рдореЗрдВрдЯ рдФрд░ рдХреНрд▓рд╛рд╕ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдлрдВрдХреНрд╢рди рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рдФрд░ рдХреНрд▓рд╛рд╕ рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдлрдВрдХреНрд╢рди рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рдлрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдХреНрд▓рд╛рд╕ рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЙрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рд╕рдВрджрд░реНрдн Reference рдХреЛ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╡рд░реНрдЧ рдШреЛрд╖рдгрд╛
рдХрдХреНрд╖рд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкрд╣рд▓рд╛ рддрд░реАрдХрд╛ рдПрдХ рд╡рд░реНрдЧ рдШреЛрд╖рдгрд╛ рдХреЗ рд╕рд╛рде рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд░реНрдЧ рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рд╡рд░реНрдЧ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, "myClass")ред class myClass{ constructor(height, width) { this.height = height; this.width = width; } }
рдПрдХ рд╡рд░реНрдЧ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рд╡рд░реНрдЧ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИред рдЖрдк рдирд╛рдо рдФрд░ рдирд╛рдо рд░рд╣рд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд░реНрдЧ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдирд╛рдо рдХрдХреНрд╖рд╛ рдХреЗ рд╕реНрдерд╛рдиреАрдп рджрд╛рдпрд░реЗ рдореЗрдВ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдХрдХреНрд╖рд╛ рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рди рдХрд┐ рдЗрд╕рдХрд╛ рдЙрджрд╛рд╣рд░рдгред
рдХрдХреНрд╖рд╛ рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рдХрдХреНрд╖рд╛ рдХреА рдШреЛрд╖рдгрд╛рдУрдВ рдХреА рддрд░рд╣ рд╣реА рд▓рд╣рд░рд╛рддреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдЕрдзреАрди рд╣реИрдВ! рдХреНрд▓рд╛рд╕ рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рдмреЙрдбреАрдЬрд╝ рдФрд░ рдХреНрд▓рд╛рд╕ рдПрдХреНрд╕рдкреНрд░реЗрд╢рдВрд╕ рдХреЛ рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрд╕рдЦреНрдд рдореЛрдб рд░рдирдЯрд╛рдЗрдо рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИредрдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдЦреНрдд рдореЛрдб рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ:- рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЕрдкрд╡рд╛рдж рдореЗрдВ рдмрджрд▓реЗрдВ
- рдкрд░рд┐рд╡рд░реНрддрди рдЬреЛ рдЕрдкрдиреЗ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдПрдХ рдЪрд░ рдХреА рдЧрдгрдирд╛ рдХреЛ рд╕рд░рд▓ рдХрд░рддреЗ рд╣реИрдВ;
- , eval arguments;
- , ┬л┬╗ JavaScript;
- .
- .
- , , .
- ( ).
- , , . , .
- . .
- рдЕрд╖реНрдЯрдХ рд╡рд░реНрдЧ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рд╡рд╛рдХреНрдп рд╡рд┐рдиреНрдпрд╛рд╕ рдирд┐рд╖рд┐рджреНрдз рд╣реИред
- рдЖрджрд┐рдо рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдЧреБрдг рд╕реЗрдЯ рдХрд░рдирд╛ рдирд┐рд╖рд┐рджреНрдз рд╣реИред
рдЪрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд╛рд╕рд░рд▓реАрдХрд░рдг рд╕рдЦреНрдд рдореЛрдб рдХреЛрдб рдореЗрдВ рдЗрд╕рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдЪрд░ рдирд╛рдо рдХреА рддреБрд▓рдирд╛ рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред- рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдирд┐рд╖рд┐рджреНрдз рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд░рдирдЯрд╛рдЗрдо рдкрд░, рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ рдХреЛрдИ рднреА рдирд╛рдо рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБ рдХреА рд╕рдВрдкрддреНрддрд┐ рдпрд╛ рдЖрд╕рдкрд╛рд╕ рдХреЗ (рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╡реИрд╢реНрд╡рд┐рдХ) рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рдЪрд░ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддрд╛ рд╣реИ - рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдЬрд╛рдирдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡рд┐рдХрд▓реНрдк - рдПрдХ рдЫреЛрдЯреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рд╡рд╕реНрддреБ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛ рдФрд░ рдлрд┐рд░ рдЗрд╕ рдЪрд░ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрдкрддреНрддрд┐ рддрдХ рдкрд╣реБрдВрдЪрдирд╛ред
- eval () рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ рдЖрд╕рдкрд╛рд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдирдП рдЪрд░ рдирд╣реАрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред
- рд╕рд░рд▓ рдирд╛рдореЛрдВ рдХреЛ рд╣рдЯрд╛рдирд╛ рдирд┐рд╖рд┐рджреНрдз рд╣реИред
Eval рдФрд░ рддрд░реНрдХреЛрдВ рдХрд╛ рд╕рд░рд▓реАрдХрд░рдгStrict рдореЛрдб рддрд░реНрдХреЛрдВ рдФрд░ eval рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд╡рд┐рд╖рдорддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ, рджреЛрдиреЛрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЬрд╛рджреВ рдХреЛ рдирд┐рдпрдорд┐рдд рдХреЛрдб рдореЗрдВ рдорд┐рд▓рд╛рддреЗ рд╣реИрдВред рддреЛ eval рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рдпрд╛ рд╣рдЯрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдирдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ, рдФрд░ рддрд░реНрдХреЛрдВ рдХрд╛ рдЪрд░ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рдЧреБрдгреЛрдВ рд╕реЗ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдирд╛рдорд┐рдд рдлрд╝рдВрдХреНрд╢рди рддрд░реНрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн (рд╕рдорд╛рдирд╛рд░реНрдердХ рд╢рдмреНрдж) рд╣реИрдВред- рдХреАрд╡рд░реНрдб рдХреЗ рдирд┐рд╖реНрдХрд╛рд╕рди рдФрд░ рддрд░реНрдХреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдпрд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рддрд░реНрдХреЛрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдирд╛рдорд╛рдВрдХрд┐рдд рддрд░реНрдХреЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореВрд▓реНрдпреЛрдВ рдХреА рдЙрдирдХреА рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдкреНрд░рддрд┐рдпрд╛рдВ рд╣реИрдВред
- рддрд░реНрдХред рдХрд╛рдиреВрдиреА рд╕рдВрдкрддреНрддрд┐ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рдирд┐рдпрдорд┐рдд рдХреЛрдб рдореЗрдВ, рддрд░реНрдХреЛрдВред рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЕрд░реНрде рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЖрд╣реНрд╡рд╛рди рдХреЗ рд▓рд┐рдП рддрд░реНрдХреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
"рд╕реБрд░рдХреНрд╖рд┐рдд" рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯрдХреБрдЫ рд╡реЗрдмрд╕рд╛рдЗрдЯреЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдУрд░ рд╕реЗ рд╕рд╛рдЗрдЯ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдирд┐рдЬреА рдЬрд╛рдирдХрд╛рд░реА рддрдХ рдкрд╣реБрдБрдЪ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬреЛ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рд╕реБрд░рдХреНрд╖рд╛ рдЫреЗрдж рд╣реИред- рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдорд╛рди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред
- рдореВрд▓ ECMAScript рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдЯреИрдХ рдХреЛ "рд░рди" рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред
- рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рддрд░реНрдХ рд╕рдВрдкрддреНрддрд┐ рдЕрдм рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдмрдирд╛рдП рдЧрдП рдЪрд░ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреА рд╣реИред
рдЖрдк Strict рдореЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП ECMAScript 5.1 рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВредрдФрд░ рдореЛрдЬрд╝рд┐рд▓рд╛ рд╕реЗ рдкреНрд░рд▓реЗрдЦрди рднреА редрдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реНрд╕
рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдзрд┐ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдИ рдЧрдИ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред class Student { constructor(name) { this.name = name; } } var robert = new Student('Robert'); console.log(robert.name);
рдХрдХреНрд╖рд╛ рд╕реЗ рдирдИ рд╡рд╕реНрддреБрдПрдВ рдмрдирд╛рддреЗ рд╕рдордп, рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ () рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИредрдПрдХ рд╡рд░реНрдЧ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рдзрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрд┐рд╕реЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣реИрдВ, рддреЛ рд╕рд┐рдВрдЯреИрдХреНрд╕рдПрдпрд░ рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛редрд╕реБрдкрд░ рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдкреИрд░реЗрдВрдЯ рдХреНрд▓рд╛рд╕ рдХреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдЗрдирд╡рд╛рдЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдпрджрд┐ рдЖрдкрдиреЗ рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╡рд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛редрдЖрдзрд╛рд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдорд╛рддрд╛ рд╣реИ: constructor() {}
рд╡реНрдпреБрддреНрдкрдиреНрди рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдорд╛рддрд╛ рд╣реИ: constructor(...args) { super(...args); }
рддрд░реАрдХреЛрдВ
рд╡рд┐рдзрд┐ рдШреЛрд╖рдгрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕: var obj = { property([parameters]) {}, get property() {}, set property(value) {}, * generator() {} };
рдЬрдирд░реЗрдЯрд░ рдХреЗ рддрд░реАрдХреЛрдВ рдХреА рд╕рдВрдХреНрд╖рд┐рдкреНрддрддрд╛ var obj = { * g() { var index = 0; while(true) yield index++; } }; var it = obj.g(); console.log(it.next().value);
рдЬрдирд░реЗрдЯрд░ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рд╡рд┐рдзрд┐ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рдирд┐рд░реНрдорд╛рддрд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдФрд░ рдпрджрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рддреНрд╡рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдЯрд╛рдЗрдкрд░ рдлреЗрдВрдХ рджреЗрдВрдЧреЗредрдЧрдгрдирд╛ рдХреА рдЧрдИ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо var obj = { ["foo" + 2](){ return 2; } console.log(obj.foo2());
рд╕реНрдереИрддрд┐рдХ рдЦреЛрдЬрд╢рдмреНрдж рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕реНрдЯреИрдЯрд┐рдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЙрдирдХреА рдХрдХреНрд╖рд╛ рдХреЛ рддреБрд░рдВрдд рдмрддрд╛рдП рдмрд┐рдирд╛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХрдХреНрд╖рд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдЧреЗрдЯ рдФрд░ рдмрд╕рдиреЗ рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ class Student { constructor(name) { this.name = name; } get Name() { return this.name; } set Name(newName) { if(typeof(newName) != "string") throw new Error("Name is not a string!"); else this.name = newName;
- рд╕реЗрдЯрд░ - рд▓рд┐рдЦрд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ (рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ)
- getter - рдЧреБрдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╕реАрдзреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред рддрд░реНрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ
ES6 рдореЗрдВ рдХреЛрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:
var Student = (function () { let privateProps = new WeakMap(); class Person { constructor(name, Age) { this.name = name;
рд╡рд┐рд░рд╛рд╕рдд
рдХреНрд▓рд╛рд╕ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдФрд░ рдХреНрд▓рд╛рд╕ рдПрдХреНрд╕рдкреНрд░реЗрд╢рдВрд╕ рдореЗрдВ рдПрдХ рдФрд░ рдХреНрд▓рд╛рд╕ рдХрд╛ рдмрдЪреНрдЪрд╛ рдкреИрджрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрдбрд░реНрд╕ рдХреАрд╡рд░реНрдб рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред class Person { constructor (age) { this.age = age; } sayAge () { return this.age; } } class Student extends Person { constructor (name, age) { super(age); this.name = name; } sayFull () { return `Hello my name is ${this.name} and I'm ${super.sayAge()} years old`; } } var robert = new Student("Robert", 19); console.log(robert.sayFull());
рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ, рд╕реБрдкрд░ () рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкреИрд░реЗрдВрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдЗрд╕ рдХреАрд╡рд░реНрдб рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реА рдХреЙрд▓ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реБрдкрд░ рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдореВрд▓ рд╡рд╕реНрддреБ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдЬрдм рдЖрдк рдЪрд╛рдЗрд▓реНрдб рдХреНрд▓рд╛рд╕ рдореЗрдВ рдкреИрд░реЗрдВрдЯ рдХреНрд▓рд╛рд╕ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЪрд╛рдЗрд▓реНрдб рдХреНрд▓рд╛рд╕ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЖрдк рд╕реБрдкрд░ () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреЗрд░реЗрдВрдЯ рдХреНрд▓рд╛рд╕ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред class obj { constructor(name){ this.name = name; } displayName(){ return this.name.length; } } undefined class obj_2 extends obj { constructor(name) { super(name); } displayName() {
рдлреИрд▓реА рдЗрдирд▓рд╛рдЗрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдПрдХреНрд╕рдЯреЗрдВрдб рдХрд░рдиреЗ рдХреЗ рд╕рд╛рдердпрд╣ рдЙрджрд╛рд╣рд░рдг рдЗрдирд▓рд╛рдЗрди рдбреЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИред class myDate extends Date { constructor() { super(); } getFormattedDate() { var months = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ]; return this.getDate() + '-' + months[this.getMonth()] + '-' + this.getFullYear(); } }
рд╡рд╛рджрд╛
рдкреНрд░реЙрдорд┐рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрд╕реНрдердЧрд┐рдд рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЧрдгрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрд╡рд╛рджрд╛ рддреАрди рд░рд╛рдЬреНрдпреЛрдВ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:- рд▓рдВрдмрд┐рдд: рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрд╡рд╕реНрдерд╛, рдкреВрд░реНрдг рдирд╣реАрдВ рдФрд░ рдЕрд╕реНрд╡реАрдХреГрдд рдирд╣реАрдВред
- (fulfilled): .
- (rejected): .
(pending), (fulfilled), (), (rejected), . , then. ( , , .. ┬л ┬╗, , , DOM.)
Promise.prototype.then() Promise.prototype.catch() , , .
(promise)рдирдП рдХреАрд╡рд░реНрдб рдФрд░ рдЗрд╕рдХреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдПрдХ рдкреНрд░реЙрдорд┐рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░реЙрдорд┐рд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдПрдХ рддрд░реНрдХ рдХреЛ рдПрдХ рдирд┐рд╖реНрдкрд╛рджрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рджреЛ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкрд╣рд▓реЗ рдПрдХ (рд╕рдВрдХрд▓реНрдк) рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдСрдкрд░реЗрд╢рди рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реБрдЖ рдФрд░ рдореВрд▓реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ред рдСрдкрд░реЗрд╢рди рдХреЗ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рджреВрд╕рд░рд╛ рдХреЙрд▓рдмреИрдХ (рдЕрд╕реНрд╡реАрдХрд╛рд░) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдХрд╛рд░рдг рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реБрдП рдПрдХ рдореВрд▓реНрдп рджреЗрддрд╛ рд╣реИ, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдПрдХ рддреНрд░реБрдЯрд┐ рд╡рд╕реНрддреБред const myPromise = new Promise((resolve, reject) => {
рджреЛ рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ, рд╣рд▓ рдФрд░ рдЕрд╕реНрд╡реАрдХрд╛рд░, рд╡рд╛рджреЗ рдХреЗ рд╕рдлрд▓ рд╣реЛрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ; рджреВрд╕рд░рд╛ рдЗрд╕реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИредрдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╡рд╛рджрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╕ рдЗрд╕рдореЗрдВ рд╡рд╛рджрд╛ рд╡рд╕реНрддреБ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред function myAsyncFunction(url) { return new Promise((resolve, reject) => { const xhr = new XMLHttpRequest(); xhr.open("GET", url); xhr.onload = () => resolve(xhr.responseText); xhr.onerror = () => reject(xhr.statusText); xhr.send(); }); }
рдХреЗ рд╕рд╛рдеред рддрдм рдирд┐рд╖реНрдкрд╛рджрди рдФрд░ рдЕрд╕реНрд╡реАрдХреГрддрд┐ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрддрд░реАрдХреЛрдВ- Promise.all (iterable) - рд╕рднреА рд╡рд╛рджреЛрдВ рдХреЗ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди рдпрд╛ рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдПрдХ рд╡рд╛рджрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕рднреА рд╡рд╛рджреЛрдВ рдХреЗ рдЪрд▓рдиреЗ рдХреЗ рдмрд╛рдж рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдШрдЯрдирд╛ рдореЗрдВ рдХрд┐ рдХрд┐рд╕реА рднреА рд╡рд╛рджреЗ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, Promise.all рднреА рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
- Promise.allSettled (iterable) - рд╕рднреА рдкреНрд░рд╛рдкреНрдд рд╡рд╛рджреЛрдВ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реИ (рдирд┐рд╖реНрдкрд╛рджрди рдФрд░ рдЕрд╕реНрд╡реАрдХреГрддрд┐ рджреЛрдиреЛрдВ)ред рдПрдХ рдРрд╕рд╛ рд╡рд╛рджрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЬрдм рд╕рднреА рдкреНрд░рд╛рдкреНрдд рд╡рд╛рджреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдпрд╛ рдЕрд╕реНрд╡реАрдХреГрдд), рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╡рд╛рджреЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реЛрддреА рд╣реИред
- Promise.race (iterable) - рдХрд┐рд╕реА рднреА рдкреНрд░рд╛рдкреНрдд рд╡рд╛рджреЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдпрд╛ рдЕрд╕реНрд╡реАрдХреГрддрд┐ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдПрдХ рд╡рд╛рджрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдпрд╛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЧрдП рд╡рд╛рджреЗ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдпрд╛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
- Promise.reject (рдХрд╛рд░рдг) - рдХрд╛рд░рдг рдХреЗ рдХрд╛рд░рдг рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╡рд╛рджрд╛ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИред
- Promise.resolve (рдорд╛рди) - рдкрд░рд┐рдгрд╛рдо рдорд╛рди рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╡рд╛рджрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
рдкреНрд░реЙрдорд┐рд╕ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк- рдкрдХрдбрд╝ (рдЪрд╛рд▓реВ) - рд╡рд╛рджреЗ рдХреА рдЕрд╕реНрд╡реАрдХреГрддрд┐ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рджрд┐рдП рдЧрдП рд╡рд╛рджреЗ рдХреЗ рд╕рд╛рде рдХрд┐рдП рдЧрдП рдПрдХ рдирдП рд╡рд╛рджреЗ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдЕрдЧрд░ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореВрд▓ рд╕рдорд╛рдзрд╛рди рдореВрд▓реНрдпред
- рддрдм (onFulfilled, onRejected) - рдПрдХ рд╡рд╛рджреЗ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдФрд░ рдЕрд╕реНрд╡реАрдХреГрддрд┐ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдирдпрд╛ рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рддрдерд╛рдХрдерд┐рдд рд╣реИрдВрдбрд▓рд░ рдХреЗ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рдореВрд▓ рдореВрд▓реНрдп рдпрджрд┐ рд╡рд╛рджрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдпрд╛рдиреА, рдпрджрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдСрдирдлрд┐рд▓реНрдб рдпрд╛ рдСрдирд░рдХреЗрдб рд╣реИрдВрдбрд▓рд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИ)ред
рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ http рдЕрдиреБрд░реЛрдз рдмрдирд╛рдирд╛: const URL = "https://getfestivo.com/v1/holidays?api_key=f8f42551-eb66-49d2-bcba-b8e42727ddfb&country=US&year=2019";
рдЖрдк рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдФрд░ рд╕рд╛рде рд╣реА рдореЛрдЬрд╝рд┐рд▓рд╛ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╡рд╛рджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЙрджрд╛рд╣рд░рдг рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ редiterators
рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рдСрдкрд░реЗрд╢рди рд╣реИред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд▓реВрдк рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рд╕реЗ рдорд╛рдирдЪрд┐рддреНрд░ (), рдлрд╝рд┐рд▓реНрдЯрд░ (), рдФрд░ рд╕рд░рдгреА рд╕рдордЭ рдХреЗ рд▓рд┐рдПред Iterators рдФрд░ рдЬрдирд░реЗрдЯрд░ рднрд╛рд╖рд╛ рдХреА рдХреЛрд░ рдореЗрдВ рд╕реАрдзреЗ рдЧрдгрдирд╛ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд▓реВрдкреНрд╕ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВредрдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рдЗрдЯрд░реЗрдЯрд░ рд╣реИ рдпрджрд┐ рд╡рд╣ рдЗрд╕ рдЕрдиреБрдХреНрд░рдо рдХреЗ рднреАрддрд░ рдЕрдкрдиреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддреЗ рд╕рдордп, рд╕рдВрдЧреНрд░рд╣ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдПрдХ рдЗрдЯреНрд░реЗрдЯрд░ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ рдЬреЛ рдПрдХ рдЕрдЧрд▓реА () рд╡рд┐рдзрд┐ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрдиреБрдХреНрд░рдо рдХреЗ рдЕрдЧрд▓реЗ рддрддреНрд╡ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐ рджреЛ рдЧреБрдгреЛрдВ рд╡рд╛рд▓реА рдПрдХ рд╡рд╕реНрддреБ рд▓реМрдЯрд╛рддреА рд╣реИ: рдХрд┐рдпрд╛ рдФрд░ рдореВрд▓реНрдпредрдПрдХ рдмрд╛рд░ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрдЯреЗрд░реЗрдЯрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдЧрд▓реА () рд╡рд┐рдзрд┐ рд╕реЗ рдХреЙрд▓ рдХрд░рдХреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредIterable - рдпрд╣ рдПрдХ рдРрд╕реА рд╡рд╕реНрддреБ рд╣реИ рдЬрд┐рд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рд╡рд╕реНрддреБ рдЧреИрд░-рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИ, рдЗрд╕рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдзрд┐ рд╣реЛрддреА рд╣реИ рдЬреЛ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рддреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ: Symbol.iterator Iterable { [Symbol.iterator]() }
рд╡рд┐рдзрд┐ рдЬреЛ рд╡рд╕реНрддреБ рд▓реМрдЯрд╛рддреА рд╣реИ, рдЙрд╕реЗ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдХ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИредрдЗрдЯреНрд░реЗрдЯрд░ рдХреА рд╕рд┐рд░реНрдл рдПрдХ рдЕрдЧрд▓реА () рд╡рд┐рдзрд┐ рд╣реИ Iterator { next(); }
рдЬреЛ рджреЛ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╕реНрддреБ рджреЗрддрд╛ рд╣реИ (рдЪрд▓реЛ рдЗрд╕реЗ itreratorResult рдХрд╣рддреЗ рд╣реИрдВ) рдФрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЧреБрдг IteratorResult { done, value }
рдХрд┐рдпрд╛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдХреЛрдИ рдорд╛рди рдЕрднреА рднреА рдЦреЛрдЬрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдорд╛рди рдореЗрдВ рдЕрдиреБрдХреНрд░рдо рдХрд╛ рдЕрдЧрд▓рд╛ рддрддреНрд╡ рд╣реИредрдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рдмрд╛рдж, рдЕрдЧрд▓реЗ () рд╡рд┐рдзрд┐ рдХреЛ рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗ рдХреЛ рдПрдХ-рдПрдХ рдХрд░рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдпрджрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдорд╛рдиреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рддрд░реНрдХ рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рдиреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреБрдЫ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рдХрд╛рд░, рдЬреИрд╕реЗ рдХрд┐ рдРрд░реЗ рдпрд╛ рдореИрдк, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВ, рдЬрдмрдХрд┐ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░, рдЬреИрд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ, рдирд╣реАрдВ рд╣реИрдВредрдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ (рдпрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рд╕реЗ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ) рдХреЗ рдкрд╛рд╕ Symbol.iterator рдирд╛рдордХ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПредрдРрд╕рд╛ рдорд╛рдирдХ рдорд╛рдирдХ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ: function makeIterator(array){ var nextIndex = 0; return { next: function(){ return nextIndex < array.length ? { value: array[nextIndex++], done: false } : { done: true }; } } }
рдЬреЗрдирд░реЗрдЯрд░
рдЬрдирд░реЗрдЯрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдПрдХ рдЗрдЯреНрд░реЗрдЯрд░ рдлреИрдХреНрдЯрд░реА рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдЬрдирд░реЗрдЯрд░ рдмрди рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдЗрд╕рдореЗрдВ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдЙрдкрдЬ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдлрд╝рдВрдХреНрд╢рди * рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИредрдЬрдирд░реЗрдЯрд░ рдПрдХ рдирдП рдкреНрд░рдХрд╛рд░ рдХрд╛ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд░реЛрдХ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдмрд╛рдж рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХрддрд╛ рд╣реИредрдЖрдЗрдП рдПрдХ рдирд┐рдпрдорд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджреЗрдЦреЗрдВ рдЬреЛ рдХреБрдЫ рдЧрдгрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ: function myFunction (a) { a = a*2; a = a - 1; return a; } console.log(myFunction(5));
рдЕрдм рдПрдХ рд╕рдорд╛рди рдЬрдирд░реЗрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ: function* generator(a) { a = a*2; yield a; a = a - 1; yield a; } var it = generator(5); console.log(it.next().value);
рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛, рдЬрдирд░реЗрдЯрд░ рдЕрдкрдиреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реА рдХреЙрд▓ рдХреЗ рд╕рдордп, рдлрд╝рдВрдХреНрд╢рди рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдкрд╣рд▓реЗ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдЙрдкрдЬ рдкрд░ рдЗрд╕рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдирд┐рд▓рдВрдмрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИред рджреВрд╕рд░реЗ рдХреЙрд▓ рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рдкрд┐рдЫрд▓реЗ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╕реЗ рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИ рдФрд░ рдЕрдЧрд▓реЗ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИредрдлрд╝рдВрдХреНрд╢рди рдЬрдирд░реЗрдЯрд░ рдЬрдЯрд┐рд▓ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВредрдЬрдирд░реЗрдЯрд░ рдорд╛рдВрдЧ рдкрд░ рдЕрдкрдиреА рдЙрдкрдЬ рдХреЗ рднрд╛рд╡реЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдЙрдЪреНрдЪ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдЬрдЯрд┐рд▓рддрд╛, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдирдВрдд рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреЗ рд╕рд╛рде рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИредрдЕрдЧрд▓реА () рд╡рд┐рдзрд┐ рдПрдХ рдорд╛рди рднреА рд▓реЗрддреА рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрдирд░реЗрдЯрд░ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдЧрд▓реЗ () рдХреЛ рджрд┐рдП рдЧрдП рдорд╛рди рдХреЛ рдЕрдВрддрд┐рдо рдЙрдкрдЬ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ рдЬрд┐рд╕рдиреЗ рдЬрдирд░реЗрдЯрд░ рдХреЛ рд░реЛрдХ рджрд┐рдпрд╛редрдЖрдк рдЬрдирд░реЗрдЯрд░ рдХреЛ рдЙрд╕рдХреЗ рдлреЗрдВрдХ () рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕ рдорд╛рди рдХреЗ рдорд╛рди рдХреЛ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдЕрдкрд╡рд╛рдж рдХреЛ рдЬрдирд░реЗрдЯрд░ рдХреЗ рд╡рд░реНрддрдорд╛рди рд░реБрдХреЗ рд╣реБрдП рд╕рдВрджрд░реНрдн рд╕реЗ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬреИрд╕реЗ рдХрд┐ рд╡рд░реНрддрдорд╛рди рд░реБрдХрд╛ рд╣реБрдЖ рдЙрдкрдЬ рд╡рд┐рд╡рд░рдг рдПрдХ рдлреЗрдВрдХ рд╡рдХреНрддрд╡реНрдп рдерд╛редрдпрджрд┐ рдЙрдкрдЬ рдХрдерди рдлреЗрдВрдХрдиреЗ рд╡рд╛рд▓реЗ рдЕрдкрд╡рд╛рдж рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рджреМрд░рд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХ () рдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдКрдкрд░ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдмрд╛рдж рдореЗрдВ () рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╕рд╣реА рдХреЗ рдмрд░рд╛рдмрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛редрдЬреЗрдирд░реЗрдЯрд░ рдореЗрдВ рдПрдХ рд░рд┐рдЯрд░реНрди (рдорд╛рди) рд╡рд┐рдзрд┐ рд╣реЛрддреА рд╣реИ рдЬреЛ рджрд┐рдП рдЧрдП рдорд╛рди рдХреЛ рд▓реМрдЯрд╛рддреА рд╣реИ рдФрд░ рдЬрдирд░реЗрдЯрд░ рдХреЛ рд░реЛрдХрддреА рд╣реИредрдкреНрд░рддреАрдХ
рдкреНрд░рддреАрдХ рдПрдХ рдЖрджрд┐рдо рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬрд┐рд╕рдХреЗ рдЙрджрд╛рд╣рд░рдг рдЕрджреНрд╡рд┐рддреАрдп рдФрд░ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИрдВредрдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ, рдкреНрд░рддреАрдХ () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдПрдХ "рдкреНрд░рддреАрдХ" рдорд╛рди рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдПрдХ рдЕрдирд╛рдо рдФрд░ рдЕрджреНрд╡рд┐рддреАрдп рдореВрд▓реНрдп рдмрдирд╛рддрд╛ рд╣реИред рдПрдХрдорд╛рддреНрд░ рдЙрдЪрд┐рдд рдЙрдкрдпреЛрдЧ рдЪрд░рд┐рддреНрд░ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдФрд░ рдлрд┐рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕рдВрдкрддреНрддрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдЧреНрд░рд╣реАрдд рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредрдЬрдм рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдореЗрдВ рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЪрд░рд┐рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдВрдкрддреНрддрд┐ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЪрд░рд┐рддреНрд░) рдЧреБрдордирд╛рдо рд╣реЛрддреА рд╣реИ; рдФрд░ рднреА рдЧрд┐рдирдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред рдЪреВрдВрдХрд┐ рд╕рдВрдкрддреНрддрд┐ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ "for (... рдореЗрдВ ...)" рд▓реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдФрд░ рдЪреВрдВрдХрд┐ рдкреНрд░реЙрдкрд░реНрдЯреА рдмреЗрдирд╛рдореА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ "Object.getOwnPropertyNames ()" рдкрд░рд┐рдгрд╛рдо рд╕рд░рдгреА рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдкреНрд░рддреАрдХ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдкрд░рд┐рдгрд╛рдо рд╕рд░рдгреА "Object.getOwnPropertySymbols ()" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░рдХреЗредрддреЛ рдЖрдк рдПрдХ рдЪрд░рд┐рддреНрд░ рд╕рдВрдкрддреНрддрд┐ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ: var user = { name: "Alex", [Symbol("password")]: "12hsK3I" }
рд╡рд░реНрдг рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Object.getOwnPropertySymbols (obj) рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ;рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдХрд╣реАрдВ рднреА рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, Symbol.for () рдФрд░ Symbol.keyFor () рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредSumbol рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рджреЗрдЦреЗрдВ , рдФрд░ рдореЛрдЬрд╝рд┐рд▓рд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рднреА ред