рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЧрд╛рдЗрдб рднрд╛рдЧ 9: ES7, ES8 рдФрд░ ES9 рдорд╛рдирдХреЛрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди

рдЖрдЬ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореИрдиреБрдЕрд▓ рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХреЗ рдиреМрд╡реЗрдВ рднрд╛рдЧ рдореЗрдВ, ES7, ES8 рдФрд░ ES9 рдорд╛рдирдХреЛрдВ рдХреЗ рд▓рд┐рдП рднрд╛рд╖рд╛ рдореЗрдВ рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

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



рдИрдПрд╕ 7 рдорд╛рдирдХ


ES7 рдорд╛рдирдХ, рдЬрд┐рд╕реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╢рдмреНрджрд╛рд╡рд▓реА рдХреЗ рдЕрдиреБрд╕рд╛рд░, ES2016 рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, 2016 рдХреА рдЧрд░реНрдорд┐рдпреЛрдВ рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд╣, ES6 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд╛рдпрд╛ рдЧрдпрд╛, рдЬреНрдпрд╛рджрд╛ рдирдпрд╛ рдирд╣реАрдВ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

  • Array.prototype.includes() рд╡рд┐рдзрд┐ред
  • рдпрдпрдпрдп рдпрдпрдп рдпрдпрдп рдпрдпрдпрдпрдпред

тЦН рд╡рд┐рдзрд┐ Array.prototype.includes ()


рд╕рд░рдгреА рдореЗрдВ рдПрдХ рддрддреНрд╡ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП Array.prototype.includes() рд╡рд┐рдзрд┐ рдХреЛ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рд░рдгреА рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдЦреЛрдЬрдирд╛, рдпрд╣ true , false ред ES7 рд╕реЗ рдкрд╣рд▓реЗ, indexOf() рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрд╕реА рдСрдкрд░реЗрд╢рди рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рд░рд┐рдЯрд░реНрди рдХрд░рддрд╛ рд╣реИ, рдпрджрд┐ рдХреЛрдИ рддрддреНрд╡ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд╣рд▓рд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдпрд╣ рд╕рд░рдгреА рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ indexOf() рддрддреНрд╡ рдирд╣реАрдВ рдорд┐рд▓рд╛, рддреЛ рдпрд╣ рдирдВрдмрд░ -1 рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдХрд╛рд░ рд░реВрдкрд╛рдВрддрд░рдг рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдирдВрдмрд░ -1 true рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ true ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, indexOf() рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП indexOf() рдХрд┐рд╕реА рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░реВрдк рдХреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

 if ([1,2].indexOf(3) === -1) { console.log('Not found') } 

рдпрджрд┐ рдПрдХ рд╕рдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдпрд╣ рдорд╛рдирдХрд░ рдХрд┐ indexOf() , рдПрдХ рддрддреНрд╡ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рдмрд┐рдирд╛, false рд░рд┐рдЯрд░реНрди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рдЬреИрд╕реЗ рдХреБрдЫ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдХреЛрдб рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

 if (![1,2].indexOf(3)) { // console.log('Not found') } 

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрдорд╛рдг ![1,2].indexOf(3) false рджреЗрддрд╛ false ред

includes() рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдРрд╕реА рддреБрд▓рдирд╛рдПрдВ рдЕрдзрд┐рдХ рддрд╛рд░реНрдХрд┐рдХ рд▓рдЧрддреА рд╣реИрдВред

 if (![1,2].includes(3)) { console.log('Not found') } 

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдирд┐рд░реНрдорд╛рдг [1,2].includes(3) false , рдпрд╣ рдорд╛рди рдПрдХ рдСрдкрд░реЗрдЯрд░ рд╣реИ ! рдпрд╣ true рдЬрд╛рддрд╛ true рдФрд░ рдХрдВрд╕реЛрд▓ рдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рдорд┐рд▓рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╕рд░рдгреА рдореЗрдВ рдЖрдЗрдЯрдо рдирд╣реАрдВ рдорд┐рд▓рд╛ред

тЦН рдШрд╛рддрд╛рдВрдХ рд╕рдВрдЪрд╛рд▓рдХ


рдкреНрд░рддрд┐рдкрд╛рджрдХ рдСрдкрд░реЗрдЯрд░ Math.pow() рд╡рд┐рдзрд┐ рдХреЗ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рдВрдХреНрд╢рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рднрд╛рд╖рд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред

 Math.pow(4, 2) == 4 ** 2 //true 

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

рдИрдПрд╕ 8 рдорд╛рдирдХ


рдИрдПрд╕ 8 рд╕реНрдЯреИрдВрдбрд░реНрдб (ES2017) 2017 рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд╣, ES7 рдХреА рддрд░рд╣, рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рд▓рд╛рдпрд╛ред рдЕрд░реНрдерд╛рддреН, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

  • рджреА рдЧрдИ рд▓рдВрдмрд╛рдИ рдореЗрдВ рддрд╛рд░ рдЬреЛрдбрд╝рдирд╛ред
  • рд╡рд┐рдзрд┐ Object.values() ред
  • рд╡рд┐рдзрд┐ Object.entries() ред
  • рд╡рд┐рдзрд┐ Object.getOwnPropertyDescriptors() ред
  • рдлрд╝рдВрдХреНрд╢рди рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдЯреНрд░реЗрд▓рд┐рдВрдЧ рдХреЙрдорд╛ред
  • рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХрд╛рд░реНрдпред
  • рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдФрд░ рдкрд░рдорд╛рдгреБ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВред

.Adding рд▓рд╛рдЗрдиреЗрдВ рджреА рдЧрдИ рд▓рдВрдмрд╛рдИ рдХреЗ рд▓рд┐рдП


ES8 рдиреЗ рджреЛ рдирдИ String рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд┐рдзрд┐рдпрд╛рдБ рдкреЗрд╢ рдХреАрдВ - padStart() рдФрд░ padEnd() ред

padStart() рд╡рд┐рдзрд┐ рд╡рд░реНрддрдорд╛рди рд░реЗрдЦрд╛ рдХреЛ рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рд╕реЗ рднрд░рддреА рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рд╡рд╛рдВрдЫрд┐рдд рд▓рдВрдмрд╛рдИ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рдЬрд╛рддреАред рд▓рд╛рдЗрди (рдмрд╛рдПрдВ) рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рднрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

 str.padStart(targetLength [, padString]) 

рдпрд╣рд╛рдБ str рд╡рд░реНрддрдорд╛рди рд▓рд╛рдЗрди рд╣реИ, targetLength рдЕрдВрддрд┐рдо рд▓рд╛рдЗрди рдХреА рд▓рдВрдмрд╛рдИ рд╣реИ (рдпрджрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рд▓рд╛рдЗрди рдХреА рд▓рдВрдмрд╛рдИ рд╕реЗ рдХрдо рд╣реИ, рддреЛ рдпрд╣ рд░реЗрдЦрд╛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдмрджрд▓рд╛рд╡ рдХреЗ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреА), padString рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ - рд╡рд░реНрддрдорд╛рди рд▓рд╛рдЗрди рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд▓рд╛рдЗрдиред рдпрджрд┐ padString рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, padString рд╡рд░реНрддрдорд╛рди рд▓рд╛рдЗрди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдВрдмрд╛рдИ рддрдХ padString рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдВрддрд░рд┐рдХреНрд╖ рд╡рд░реНрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

padEnd() рд╡рд┐рдзрд┐ padEnd() рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рд▓рд╛рдЗрди рджрд╛рдИрдВ рдУрд░ рднрд░реА рдЧрдИ рд╣реИред

рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

 const str = 'test'.padStart(10) const str1 = 'test'.padEnd(10,'*') console.log(`'${str}'`) //'      test' console.log(`'${str1}'`) //'test******' 

рдпрд╣рд╛рдВ, рдкрд░рд┐рдгрд╛рдореА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдХреЗрд╡рд▓ рд╡рд╛рдВрдЫрд┐рдд рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде padStart() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдореВрд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдЬреЛрдбрд╝реЗ рдЧрдП рдереЗред рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдХреА рд▓рдВрдмрд╛рдИ рдФрд░ рдЗрд╕реЗ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде padEnd() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ padEnd() , рдореВрд▓ рдкрдВрдХреНрддрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВ * рдЕрдХреНрд╖рд░ рдЬреЛрдбрд╝реЗ рдЧрдПред

тЦН рд╡рд┐рдзрд┐ Object.values тАЛтАЛ()


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

рдпрд╣рд╛рдБ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред

 const person = { name: 'Fred', age: 87 } const personValues = Object.values(person) console.log(personValues) // ['Fred', 87] 

рдпрд╣ рд╡рд┐рдзрд┐ рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИред

тЦН рд╡рд┐рдзрд┐ Object.entries ()


рдпрд╣ рд╡рд┐рдзрд┐ рдПрдХ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рднреА рдПрдХ рд╕рд░рдгреА рдпреБрдХреНрдд рд╣реЛрддрд╛ рд╣реИ, рдкреНрд░рд╛рд░реВрдк рдореЗрдВ [key, value] , рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЕрдкрдиреА рдЧреБрдгреЛрдВ рдХреА рдХреБрдВрдЬреА рдФрд░ рдорд╛рдиред

 const person = { name: 'Fred', age: 87 } const personValues = Object.entries(person) console.log(personValues) // [['name', 'Fred'], ['age', 87]] 

рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, рддрддреНрд╡реЛрдВ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЛ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдкрд░ рд╕рд░рдгреА рдореЗрдВ рдЬреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЙрд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

тЦН getOwnPropertyDescriptors () рд╡рд┐рдзрд┐


рдпрд╣ рд╡рд┐рдзрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рднреА рдЧреБрдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рджреЗрддреА рд╣реИред рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗрдЯ (рд╡рд┐рд╡рд░рдгрдХрд░реНрддрд╛) рдСрдмреНрдЬреЗрдХреНрдЯ рдЧреБрдгреЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

  • value - рд╡рд╕реНрддреБ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдореВрд▓реНрдпред
  • writable - рдЕрдЧрд░ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ true рддреЛ рдпрд╣ true ред
  • get - рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рдПрдХ рдЧреЗрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИ, рдпрд╛, рдпрджрд┐ рдРрд╕рд╛ рдХреЛрдИ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИ, undefined ред
  • set - рдЗрд╕рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рдпрд╛ undefined рд▓рд┐рдП рд╕реЗрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИред
  • configurable - рдпрджрд┐ рдпрд╣ false - рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдореВрд▓реНрдп рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  • enumerable - рдпрджрд┐ рдЗрд╕ рдЧреБрдг рдореЗрдВ рд╕рддреНрдп рдирд┐рд╣рд┐рдд рд╣реИ - enumerable рд╣реИред

рдпрд╣рд╛рдБ рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

 Object.getOwnPropertyDescriptors(obj) 

рдпрд╣ рдПрдХ рдРрд╕реА рд╡рд╕реНрддреБ рд▓реЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдЖрдкрдХреЛ рдкрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рд╕реЗ рдпреБрдХреНрдд рдПрдХ рд╡рд╕реНрддреБ рджреЗрддрд╛ рд╣реИред

 const person = { name: 'Fred', age: 87 } const propDescr = Object.getOwnPropertyDescriptors(person) console.log(propDescr) /* { name:  { value: 'Fred',    writable: true,    enumerable: true,    configurable: true }, age:  { value: 87,    writable: true,    enumerable: true,    configurable: true } } */ 

рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдЕрдиреНрдп рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ, рдЧреЗрдЯрд░реНрд╕ рдФрд░ рд╕реЗрдЯрд░реНрд╕ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд╕реНрддреБрдУрдВ рдХреА рдЫреЛрдЯреА рдкреНрд░рддрд┐рдпрд╛рдВ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ES6 рдорд╛рдирдХ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА Object.assign() рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

 const person1 = { set name(newName) {     console.log(newName) } } person1.name = 'x' // x 

рдЖрдЗрдП assign() рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

 const person2 = {} Object.assign(person2, person1) person2.name = 'x' //     ,    

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред name рд╕рдВрдкрддреНрддрд┐, рдЬреЛ рдореВрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕реЗрдЯрд░ рдереА, рдЕрдм рдПрдХ рдирд┐рдпрдорд┐рдд рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпреА рдЬрд╛рддреА рд╣реИред

рдЕрдм рд╣рдо Object.defineProperties() (рдпрд╣ ES5.1 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛) рдФрд░ Object.getOwnPropertyDescriptors() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВрдЧреЗред

 const person3 = {} Object.defineProperties(person3, Object.getOwnPropertyDescriptors(person1)) person3.name = 'x' //x 

рдпрд╣рд╛рдВ, рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдХреЙрдкреА рдореЗрдВ рд╕реЗрдЯрд░ рд░рд╣рддрд╛ рд╣реИред

рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ Object.assign() рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рддрд┐рдмрдВрдз рднреА Object.create() рдХреЛ Object.create() рдХреЗ рд▓рд┐рдП Object.create() рд╡рд┐рдзрд┐ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред

рд╕рдорд╛рд░реЛрд╣ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ тЦНCompletion рдХреЙрдорд╛


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

 const doSomething = ( var1, var2, ) => { //... } doSomething( 'test1', 'test2', ) 

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

тЦНрдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕


ES2017 рдорд╛рдирдХ рдореЗрдВ async/await рдирд┐рд░реНрдорд╛рдг рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рднрд╛рд╖рд╛ рдХреЗ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╡рд╛рдЪрд╛рд░ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

рдЬрдм ES2015 рдорд╛рдирдХ рдореЗрдВ рд╡рд╛рджреЗ рджрд┐рдЦрд╛рдИ рджрд┐рдП, рддреЛ рдЙрдиреНрд╣реЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЛрдб рдХреЗ рд╕рд╛рде рдореМрдЬреВрджрд╛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд┐рдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди ES2015 рдФрд░ ES2017 рдорд╛рдирдХреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рджреЛ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рд╡рд╛рджреЛрдВ рдХреЛ рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдЕрдВрддрд┐рдо рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╡рд╛рджреЗ "рдХреЙрд▓рдмреИрдХ рдирд░рдХ" рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдереЗ, рд▓реЗрдХрд┐рди, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕реНрд╡рдпрдВ рдЙрд╕ рдХреЛрдб рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдХрд╛рд░рдг рдЕрдкрдирд╛ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкрдХреНрд╖ рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рддрдереНрдп рдХреА рдмрд╛рдд рдХреЗ рд░реВрдк рдореЗрдВ, async/await рдирд┐рд░реНрдорд╛рдг рд╡рд╛рджреЛрдВ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЛрдб рдХреА рдкреНрд░рдпреЛрдЬреНрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддрд╛ рд╣реИред

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

 function doSomethingAsync() { return new Promise((resolve) => {     setTimeout(() => resolve('I did something'), 3000) }) } async function doSomething() { console.log(await doSomethingAsync()) } console.log('Before') doSomething() console.log('After') 

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

 Before After I did something 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж doSomething() рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд▓рддрд╛ рд░рд╣рддрд╛ рд╣реИ, Before , After рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рддреАрди рд╕реЗрдХрдВрдб рдмреАрддрдиреЗ рдХреЗ рдмрд╛рдж, I did something ред

рд╕реАрд░рд┐рдпрд▓ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓


рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛рдУрдВ рдХреА рддрд░рд╣ рдХреБрдЫ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХреЗрд╡рд▓ рдЗрд╕реА рддрд░рд╣ рдХреЗ рд╡рд╛рджреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмреЗрд╣рддрд░ рдкрдардиреАрдпрддрд╛ рд╕реЗ рдЕрд▓рдЧ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

 function promiseToDoSomething() { return new Promise((resolve)=>{     setTimeout(() => resolve('I did something'), 10000) }) } async function watchOverSomeoneDoingSomething() { const something = await promiseToDoSomething() return something + ' and I watched' } async function watchOverSomeoneWatchingSomeoneDoingSomething() { const something = await watchOverSomeoneDoingSomething() return something + ' and I watched as well' } watchOverSomeoneWatchingSomeoneDoingSomething().then((res) => { console.log(res) // I did something and I watched and I watched as well }) 

Ed рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдФрд░ рдкрд░рдорд╛рдгреБ рд╕рдВрдЪрд╛рд▓рди


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

ES9 рдорд╛рдирдХ


ES9 (ES2018) рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд╕рдордп рдорд╛рдирдХ рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИред рдпрд╣рд╛рдБ рдЗрд╕рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:

  • рд╡рд╕реНрддреБрдУрдВ рдкрд░ рд╕реНрдкреНрд░реЗрдб рдФрд░ рдмрд╛рдХреА рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд▓рд╛рдЧреВ рдХрд░реЗрдВред
  • рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ Iteratorsред
  • рд╡рд┐рдзрд┐ Promise.prototype.finally() ред
  • рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рд╡реГрджреНрдзрд┐ред

рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдкреНрд░рд╕рд╛рд░ рдФрд░ рдмрд╛рдХреА рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХрд╛ of рдЖрд╡реЗрджрди


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

 const numbers = [1, 2, 3, 4, 5] const [first, second, ...others] = numbers console.log(first) //1 console.log(second) //2 console.log(others) //[ 3, 4, 5 ] 

spread рдСрдкрд░реЗрдЯрд░ рдЖрдкрдХреЛ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд░рдгрд┐рдпрд╛рдБ рджреЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдирд┐рдпрдорд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред

 const numbers = [1, 2, 3, 4, 5] const sum = (a, b, c, d, e) => a + b + c + d + e const res = sum(...numbers) console.log(res) //15 

рдЕрдм, рдЙрд╕реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдПрдХ рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдСрдкрд░реЗрд╢рди рдореЗрдВ рдмрд╛рдХреА рд╡рд┐рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред

 const { first, second, ...others } = { first: 1, second: 2, third: 3, fourth: 4, fifth: 5 } console.log(first) //1 console.log(second) //2 console.log(others) //{ third: 3, fourth: 4, fifth: 5 } 

рдпрд╣рд╛рдБ рдореМрдЬреВрджрд╛ рд╡рд┐рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдореМрдЬреВрджрд╛ рд╡рд╕реНрддреБ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдмрдирд╛рддреЗ рд╕рдордп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред

 const items = { first, second, ...others } console.log(items) //{ first: 1, second: 2, third: 3, fourth: 4, fifth: 5 } 

тЦНрдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ


рдирд┐рд░реНрдорд╛рдг рдХреА рдирдИ for-await-of рдЖрдкрдХреЛ рдЙрди рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рдЬреЛ рд▓реВрдк рдореЗрдВ рд╡рд╛рджреЗ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рд▓реВрдк рдЕрдЧрд▓реЗ рдЪрд░рдг рдкрд░ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд╛рджреЗ рдХреЗ рд╕рдВрдХрд▓реНрдк рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред

 for await (const line of readLines(filePath)) { console.log(line) } 

рдЗрд╕реА рд╕рдордп, рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЫреЛрд░реЛрдВ рдХреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - рдЙрд╕реА рддрд░рд╣ рдЬрдм async/await рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реЛред

тЦН Promise.prototype.finally () рд╡рд┐рдзрд┐


рдпрджрд┐ рд╡рд╛рджрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╣рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЕрдЧрд▓рд╛ then() рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдХреБрдЫ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ catch() рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред finally() рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ рдХреБрдЫ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рднрд▓реЗ рд╣реА рдкрд╣рд▓реЗ рдХреНрдпрд╛ рд╣реБрдЖ рд╣реЛред

 fetch('file.json') .then(data => data.json()) .catch(error => console.error(error)) .finally(() => console.log('finished')) 

тЦН рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рд╕реБрдзрд╛рд░


рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдкреВрд░реНрд╡рд╡реНрдпрд╛рдкреА рд░реВрдк рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛрддреА рд╣реИ ?<= ( ?<= )ред рдпрд╣ рдЖрдкрдХреЛ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдХреБрдЫ рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдкрд╣рд▓реЗ рдХреБрдЫ рдЕрдиреНрдп рдирд┐рд░реНрдорд╛рдг рд╣реИрдВред

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

 const r = /Roger(?= Waters)/ const res1 = r.test('Roger is my dog') const res2 = r.test('Roger is my dog and Roger Waters is a famous musician') console.log(res1) //false console.log(res2) //true 

рдирд┐рд░реНрдорд╛рдг ?! рд╡рд┐рдкрд░реАрдд рдСрдкрд░реЗрд╢рди рдХрд░рддрд╛ рд╣реИ - рдПрдХ рдореИрдЪ рдХреЗрд╡рд▓ рддрднреА рдорд┐рд▓реЗрдЧрд╛ рдЬрдм рдХреЛрдИ рдЕрдиреНрдп рджреА рдЧрдИ рд▓рд╛рдЗрди рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

 const r = /Roger(?! Waters)/g const res1 = r.test('Roger is my dog') const res2 = r.test('Roger is my dog and Roger Waters is a famous musician') console.log(res1) //true console.log(res2) //false 

рдкреВрд░реНрд╡рд╡реНрдпрд╛рдкреА рд╕рддреНрдпрд╛рдкрди рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдирд┐рд░реНрдорд╛рдг ?<= рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

 const r = /(?<=Roger) Waters/ const res1 = r.test('Pink Waters is my dog') const res2 = r.test('Roger is my dog and Roger Waters is a famous musician') console.log(res1) //false console.log(res2) //true 

рд╡рд░реНрдгрд┐рдд рдПрдХ рдХреЗ рд╡рд┐рдкрд░реАрдд рдСрдкрд░реЗрд╢рди рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ?<! ред

 const r = /(?<!Roger) Waters/ const res1 = r.test('Pink Waters is my dog') const res2 = r.test('Roger is my dog and Roger Waters is a famous musician') console.log(res1) //true console.log(res2) //false 

рдпреВрдирд┐рдХреЛрдб рд░реЗрдЧреЗрдХреНрд╕ рдПрд╕реНрдХреЗрдк рд╕реАрдХреНрд╡реЗрдВрд╕


рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ, рдЖрдк рдХрд┐рд╕реА рднреА рдЕрдВрдХ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ \d рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд┐рд╕реА рднреА рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк рдЪрд░рд┐рддреНрд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓рд╛ \w рд╡рд░реНрдЧ, рдХрд┐рд╕реА рднреА рдЕрд▓реНрдлрд╝рд╛рдиреНрдпреВрдореЗрд░рд┐рдХ рд╡рд░реНрдг рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╡рд░реНрдЧ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди рд╕реБрд╡рд┐рдзрд╛ рдЙрди рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕реЗрдЯ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдЬреЛ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдпреВрдирд┐рдХреЛрдб рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рд╡рд░реНрдЧ \p{} рдФрд░ рд╡рд░реНрдЧ \P{} рдХреЗ рд╡реНрдпреБрддреНрдХреНрд░рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдпреВрдирд┐рдХреЛрдб рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдг рдореЗрдВ рдЧреБрдгреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реЛрддрд╛ рд╣реИред рдпреЗ рдЧреБрдг рд╕рдореВрд╣ \p{} рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Script рдкреНрд░реЙрдкрд░реНрдЯреА рдЙрди рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдкрд░рд┐рд╡рд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЪрд░рд┐рддреНрд░ рд╣реЛрддрд╛ рд╣реИ, ASCII рдЧреБрдг, рддрд╛рд░реНрдХрд┐рдХ, ASCII рд╡рд░реНрдгреЛрдВ рдХреЗ рд▓рд┐рдП true рд╣реЛрддрд╛ true , рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдХреЗрд╡рд▓ ASCII рдЕрдХреНрд╖рд░ рд╣реИрдВред

 console.log(r.test('abc')) //true console.log(r.test('ABC@')) //true console.log(r.test('ABC')) //false 

ASCII_Hex_Digit рд╕рдВрдкрддреНрддрд┐ рдХреЗрд╡рд▓ рдЙрди рд╡рд░реНрдгреЛрдВ рдХреЗ рд▓рд┐рдП true рд╣реИ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рд╕рдВрдЦреНрдпрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

 const r = /^\p{ASCII_Hex_Digit}+$/u console.log(r.test('0123456789ABCDEF')) //true console.log(r.test('H')) //false 

рдХрдИ рдЕрдиреНрдп рд╕рдорд╛рди рдЧреБрдг рд╣реИрдВ рдЬреЛ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдЙрд╕реА рддрд░рд╣ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрдирдореЗрдВ Uppercase , Lowercase , White_Space , Alphabetic , Emoji ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ Script рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдХрд┐рд╕ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╣рдо рдЧреНрд░реАрдХ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред

 const r = /^\p{Script=Greek}+$/u console.log(r.test('╬╡╬╗╬╗╬╖╬╜╬╣╬║╬м')) //true console.log(r.test('hey')) //false 

рдЗрди рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдкрд░ рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

рдирд╛рдорд┐рдд рд╕рдореВрд╣


ES2018 рдореЗрдВ рдХреИрдж рдЪрд░рд┐рддреНрд░ рд╕рдореВрд╣реЛрдВ рдХреЛ рдирд╛рдо рджрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред

 const re = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/ const result = re.exec('2015-01-02') console.log(result) /* [ '2015-01-02', '2015', '01', '02', index: 0, input: '2015-01-02', groups: { year: '2015', month: '01', day: '02' } ] */ 

рдирд╛рдорд┐рдд рд╕рдореВрд╣реЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд┐рдирд╛, рдПрдХ рд╣реА рдбреЗрдЯрд╛ рдХреЗрд╡рд▓ рд╕рд░рдгреА рддрддреНрд╡реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред

 const re = /(\d{4})-(\d{2})-(\d{2})/ const result = re.exec('2015-01-02') console.log(result) /* [ '2015-01-02', '2015', '01', '02', index: 0, input: '2015-01-02', groups: undefined ] */ 

рд░реЗрдЧреЗрдХреНрд╕ рдлреНрд▓реИрдЧ рдПрд╕


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

 console.log(/hi.welcome/.test('hi\nwelcome')) // false console.log(/hi.welcome/s.test('hi\nwelcome')) // true 

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


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

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рдЬреЗрдПрд╕ рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдЧрд╛рдЗрдб рдореЗрдВ рдЗрд╕ рднрд╛рд╖рд╛ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХреА рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рдЗрдВрдкреНрд░реЗрд╢рди рд╕рд╛рдЭрд╛ рдХрд░реЗрдВред

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


All Articles