рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╡рд╛рдЪрд╛рд░: Google I / O 2019 рдкрд░рд┐рдгрд╛рдоред рднрд╛рдЧ 2

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



тЖТ рдкрд╣рд▓рд╛ рднрд╛рдЧ

рдирдВрдмрд░ рд╡рд┐рднрд╛рдЬрдХ


рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдкрд╛рдИ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд▓рдВрдмреА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдкрдврд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 1000000000 рджрд╢рдорд▓рд╡ рдореЗрдВ рдПрдХ рдмрд┐рд▓рд┐рдпрди рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рдирдЬрд╝рд░ рдореЗрдВ рдЗрд╕реЗ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдкрд╛рдардХ рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реИ - рд╡рд╣, рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЕрдиреБрднрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╢реВрдиреНрдп рдХреЛ рдзреНрдпрд╛рди рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

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

 var billion = 1_000_000_000; console.log( billion ); // 1000000000 

рд╡рд┐рднрд╛рдЬрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдЬрдм рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рд╡рд┐рднрд╛рдЬрдХреЛрдВ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд▓рд┐рдЦрддреЗ рд╕рдордп рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдкреВрд░реНрдгрд╛рдВрдХ, рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ, рдмрд╛рдЗрдирд░реА, рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓, рдСрдХреНрдЯрд▓ред

 console.log( 1_000_000_000.11 ); // 1000000000.11 console.log( 1_000_000_000.1_012 ); // 1000000000.1012 console.log( 0xFF_00_FF ); // 16711935 console.log( 0b1001_0011 ); // 147 console.log( 0o11_17 ); // 591 

тЖТ рд╕рд╣рд╛рдпрддрд╛



рдмрд┐рдЧрд┐рдиреНрдЯ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░


рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдирдВрдмрд░ Number рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдЕрдзрд┐рдХрддрдо рдорд╛рди рдЬреЛ Number рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (2 1 - 1), рд╡рд╣ рд╣реИ, 9007199254740991ред рдЖрдк рдЗрд╕ рдирдВрдмрд░ рдХреЛ Number.MAX_SAFE_INTEGER рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

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

рдЕрдЧрд░ рд╣рдо 9007199254740991 рдирдВрдмрд░ рдкрд░ рдХреБрдЫ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?

 console.log( Number.MAX_SAFE_INTEGER ); // 9007199254740991 console.log( Number.MAX_SAFE_INTEGER + 10 ); // 9007199254741000 

Number.MAX_SAFE_INTEGER рдФрд░ 10, Number.MAX_SAFE_INTEGER рдХрд╛ рджреВрд╕рд░рд╛ рдЖрдЙрдЯрдкреБрдЯ console.log() рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЧрд▓рдд рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЬреЗрдПрд╕ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдЧрдгрдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕рдВрдЦреНрдпрд╛ред Number.MAX_SAFE_INTEGER рдХреЗ рдорд╛рди рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдЖрдк bigint рдбреЗрдЯрд╛ bigint рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдирд┐рдкрдЯ рд╕рдХрддреЗ рд╣реИрдВред

bigint рдкреНрд░рдХрд╛рд░ bigint рдЙрди рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИрдВред Number.MAX_SAFE_INTEGER ред рдмрд┐рдЧрдЖрдИрдВрдЯ рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЯрд╛рдЗрдк Number рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рднрд╛рд╖рд╛ рдореЗрдВ BigInt() рдлрд╝рдВрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреВрд░реНрдгрд╛рдВрдХ рдмрдбрд╝реЗ bigint рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрдбрд╝реЗ рдкреВрд░реНрдгрд╛рдВрдХ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

 var large = BigInt( 9007199254740991 ); console.log( large ); // 9007199254740991n console.log( typeof large ); // bigint 

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ BigInt рд╢рд╛рдмреНрджрд┐рдХ рдХреЗ рдЕрдВрдд рдореЗрдВ n рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреЗ рдЕрдВрдд рдореЗрдВ n рдЬреЛрдбрд╝рдХрд░ рдРрд╕реЗ рд╢рд╛рдмреНрджрд┐рдХ рд▓рд┐рдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рдмрд┐рдЧрдЖрдИрдВрдЯ рдирдВрдмрд░ рд╣реИрдВ, рд╣рдо рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЯрд╛рдЗрдк bigint рдкрд░ рдЧрдгрд┐рддреАрдп рд╕рдВрдЪрд╛рд▓рди рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 var large = 9007199254740991n; console.log( large + 10n ); // 9007199254741001n 

рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА number рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ bigint рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдо рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдмрд┐рдЧрдЖрдИрдВрдЯ-рд╕рдВрдЦреНрдпрд╛ рдХреЗрд╡рд▓ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реЛ рд╕рдХрддреА рд╣реИред рдирддреАрдЬрддрди, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдВрдХрдЧрдгрд┐рдд рд╕рдВрдЪрд╛рд▓рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ bigint рдФрд░ number рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

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

bigint рдкреНрд░рдХрд╛рд░ рднреА рдмрд┐рдЯ рд╡рд┐рднрд╛рдЬрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:

 var large = 9_007_199_254_741_001n; console.log( large ); // 9007199254741001n 

тЖТ рд╕рд╣рд╛рдпрддрд╛



рдирдИ рд╕рд░рдгреА рд╡рд┐рдзрд┐рдпрд╛рдБ: .flat () рдФрд░ .flatMap ()


рдпрд╣рд╛рдВ рд╣рдо Array рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдирдП рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ - .flat() рдФрд░ .flatMap() рддрд░реАрдХреЗред

(.Flat () рд╡рд┐рдзрд┐


рдЕрдм Array рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдПрдХ рдирдИ рд╡рд┐рдзрд┐ рд╣реИ - .flat(n) ред рдпрд╣ рдПрдХ рдирдпрд╛ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рддрддреНрд╡реЛрдВ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрддрд░ n рддрдХ рдмрдврд╝рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, n 1 рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐ n рдХреЛ Infinity рдмрд░рд╛рдмрд░ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреА рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдиреЗрд╕реНрдЯреЗрдб рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдХреЛ рдПрдХ рдЖрдпрд╛рдореА рдЖрдпрд╛рдо рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

 var nums = [1, [2, [3, [4, 5]]]]; console.log( nums.flat() ); // [1, 2, [3, [4,5]]] console.log( nums.flat(2) ); // [1, 2, 3, [4,5]] console.log( nums.flat(Infinity) ); // [1, 2, 3, 4, 5] 

тЖТ рд╕рд╣рд╛рдпрддрд╛


  • TC39: рдЪрд░рдг 4
  • рдХреНрд░реЛрдо: 69+
  • рдиреЛрдб: 11+
  • рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕: 62+

тЦН .flatMap () рд╡рд┐рдзрд┐


рд░реЛрдЬрдорд░реНрд░рд╛ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╕рдордп, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдХрднреА-рдХрднреА рд╕рдорддрд▓ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдЗрд╕рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде .map() рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░рдгреА рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрди рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд╡рд░реНрдЧ рдпреБрдХреНрдд рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдПрдВ:

 var nums = [1, 2, 3]; var squares = nums.map( n => [ n, n*n ] ) console.log( squares ); // [[1,1],[2,4],[3,9]] console.log( squares.flat() ); // [1, 1, 2, 4, 3, 9] 

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

 var nums = [1, 2, 3]; var makeSquare = n => [ n, n*n ]; console.log( nums.flatMap( makeSquare ) ); // [1, 1, 2, 4, 3, 9] 

тЖТ рд╕рд╣рд╛рдпрддрд╛


  • TC39: рдЪрд░рдг 4
  • рдХреНрд░реЛрдо: 69+
  • рдиреЛрдб: 11+
  • рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕: 62+

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


рдХрд┐рд╕реА рд╡рд╕реНрддреБ рд╕реЗ : рдкреНрд░рдХрд╛рд░ рдХреЗ рдЬреЛрдбрд╝реЗ рдирд┐рдХрд╛рд▓рдирд╛ рд╕рдВрднрд╡ рд╣реИ : рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдереИрддрд┐рдХ рд╡рд┐рдзрд┐ Object рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдПрдХ рд╕рд░рдгреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкрд╣рд▓рд╛ рддрддреНрд╡, рдПрдХ рдХреБрдВрдЬреА рдФрд░ рджреВрд╕рд░рд╛ - рдПрдХ рдорд╛рди рд╣реИред

 var obj = { x: 1, y: 2, z: 3 }; var objEntries = Object.entries( obj ); console.log( objEntries ); // [["x", 1],["y", 2],["z", 3]] 

рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рдорд╛рд░реЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рдПрдХ рд╕реНрдерд┐рд░ рддрд░реАрдХрд╛ Object.fromEntries() , рдЬреЛ рд╣рдореЗрдВ рдПрдХ рд╕рдорд╛рди рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╡рд╛рдкрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

 var entries = [["x", 1],["y", 2],["z", 3]]; var obj = Object.fromEntries( entries ); console.log( obj ); // {x: 1, y: 2, z: 3} 

entries() рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдФрд░ рдореИрдк рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкрд░рд┐рдгрд╛рдо рдПрдХ рд╕рд░рдгреА рд╣реИред рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рд░рдгреА рдХреЛ рдПрдХ рд╡рд╕реНрддреБ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХрд╛ рдХреЛрдИ рд╕реБрдВрджрд░ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред рдпрд╣ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдЖрдк Object.fromEntries() рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 var obj = { x: 1, y: 2, z: 3 }; // [["x", 1],["y", 2],["z", 3]] var objEntries = Object.entries( obj ); // [["x", 1],["z", 3]] var filtered = objEntries.filter( ( [key, value] ) => value % 2 !== 0 //  ,     ); console.log( Object.fromEntries( filtered ) ); // {x: 1, z: 3} 

рдпрджрд┐ Map : рдЬреЛрдбрд╝реЗ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ : , рддреЛ рдЙрд╕ рдбреЗрдЯрд╛ рдХреЛ рдЙрд╕ рдХреНрд░рдо рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдбреЗрдЯрд╛ рдХреИрд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ Object.entries() рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рд╕рд░рдгреА рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ рдбреЗрдЯрд╛ рдбреЗрдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП Object.fromEntries() рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ Object.fromEntries() рдЖрд╕рд╛рди рд╣реИред

 var m = new Map([["x", 1],["y", 2],["z", 3]]); console.log( m ); // {"x" => 1, "y" => 2, "z" => 3} console.log( Object.fromEntries( m ) ); // {x: 1, y: 2, z: 3} 

тЖТ рд╕рд╣рд╛рдпрддрд╛


  • TC39: рдЪрд░рдг 4
  • рдХреНрд░реЛрдо: 73+
  • рдиреЛрдб: 12+
  • рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕: 63+

T рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрдкрддреНрддрд┐ GlobalThis


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

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


рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдирд╛

Node.js рдореЗрдВ рдЗрд╕рдХрд╛ рд╡реИрд╢реНрд╡рд┐рдХ рдореВрд▓реНрдп рдПрдХ global рд╡рд╕реНрддреБ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ global рд╣реИред рдПрдХ рд╡реЗрдм рдХрд░реНрдордЪрд╛рд░реА рдХреЗ рдЕрдВрджрд░, рдпрд╣ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ рдЦреБрдж рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡реИрд╢реНрд╡рд┐рдХ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдХреЛрдИ рдЖрд╕рд╛рди рдХрд╛рдо рдирд╣реАрдВ рд╣реИред рдЗрд╕ рддрдереНрдп рдХрд╛ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдХрд╣реАрдВ рднреА рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдХреНрд▓рд╛рд╕ рдХреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ this рдЗрд╕реА рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдХреБрдЫ рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдореЗрдВ, рдЗрд╕ рдХреЗ рд╡реИрд╢реНрд╡рд┐рдХ рдореВрд▓реНрдп рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП self this рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдХреАрд╡рд░реНрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдЗрд╕ рдорд╛рди рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИ, Node.js рдореЗрдВ, рдФрд░ рд╡реЗрдм рдХрд╛рд░реНрдпрдХрд░реНрддрд╛рдУрдВ рдореЗрдВред рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рд╡реИрд╢реНрд╡рд┐рдХ рдореВрд▓реНрдп рдХреИрд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, this рдЬреНрдЮрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдорд╛рди рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ:

 const getGlobalThis = () => { if (typeof self !== 'undefined') return self; if (typeof window !== 'undefined') return window; if (typeof global !== 'undefined') return global; if (typeof this !== 'undefined') return this; throw new Error('Unable to locate global `this`'); }; var globalThis = getGlobalThis(); 

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

 var obj = { fn: function() {  console.log( 'this', this === obj ); // true  console.log( 'globalThis', globalThis === window ); // true } }; obj.fn(); 

тЖТ рд╕рд╣рд╛рдпрддрд╛



рд╕реНрдерд┐рд░ рдЫрдБрдЯрд╛рдИ


ECMAScript рдорд╛рдирдХ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд░рдгреА рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдХреЗрд╡рд▓ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреАрдЖрдИ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЕрд▓рдЧ-рдЕрд▓рдЧ JS рдЗрдВрдЬрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдХреЛрдИ рдЫрдБрдЯрд╛рдИ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЕрдВрддрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЫрдБрдЯрд╛рдИ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рд╕реНрдерд┐рд░рддрд╛ (рд╕реНрдерд┐рд░рддрд╛) рдореЗрдВред

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

 var list = [  { name: 'Anna', age: 21 },  { name: 'Barbra', age: 25 },  { name: 'Zoe', age: 18 },  { name: 'Natasha', age: 25 } ]; //      age [  { name: 'Natasha', age: 25 }  { name: 'Barbra', age: 25 },  { name: 'Anna', age: 21 },  { name: 'Zoe', age: 18 }, ] 

рдпрд╣рд╛рдВ, рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╡рд╛рд▓реЗ list рд╕рд░рдгреА рдХреЛ рдЗрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ age рдХреНрд╖реЗрддреНрд░ рджреНрд╡рд╛рд░рд╛ рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред list рд╕рд░рдгреА рдореЗрдВ, Barbra рдмрд░рд╛рдмрд░ name рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╕реНрддреБ Natasha рдмрд░рд╛рдмрд░ name рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рд╛рде рд╡рд╕реНрддреБ рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдерд┐рдд рд╣реИред рдЪреВрдВрдХрд┐ рдЗрди рд╡рд╕реНрддреБрдУрдВ рдХрд╛ age рдорд╛рди рдмрд░рд╛рдмрд░ рд╣реИ, рд╣рдо рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрд░рдордмрджреНрдз рд╕рд░рдгреА рдореЗрдВ рдпреЗ рддрддреНрд╡ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкрд┐рдЫрд▓реЗ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреНрд░рдо рдХреЛ рдмрдирд╛рдП рд░рдЦреЗрдВрдЧреЗред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдпрд╣ рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рдереАред рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЬреЗрдПрд╕ рдЗрдВрдЬрди рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЫрд╛рдВрдЯреЗ рдЧрдП рд╕рд░рдгреА рдХрд╛ рдЧрдарди рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЕрдм рд╕рднреА рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ Node.js рдПрдХ рд╕реНрдерд┐рд░ рдЫрдБрдЯрд╛рдИ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ .sort() рд╕рд░рдгреА рд╡рд┐рдзрд┐ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдкрд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣реА рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

 //    [  { name: 'Barbra', age: 25 },  { name: 'Natasha', age: 25 }  { name: 'Anna', age: 21 },  { name: 'Zoe', age: 18 }, ] 

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

тЖТ рд╕рд╣рд╛рдпрддрд╛


  • рдХреНрд░реЛрдо: 70+
  • рдиреЛрдб: 12+
  • рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕: 62+

рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдПрдкреАрдЖрдИ


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

(Intl.RelativeTimeFormat ()


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

JS рдХреЗ рдкрд╛рд╕ рдЕрдм Intl.RelativeTimeFormat(locale, config) рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣реИ , рдЬреЛ рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рджрд┐рдирд╛рдВрдХ рдФрд░ рд╕рдордп рд╕реНрд╡рд░реВрдкрдг рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдо рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рдзрд┐ рд╣реИред .format(value, unit) , рдЬреЛ рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рд░рд┐рд╢реНрддреЗрджрд╛рд░ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 // espa├▒ol ( ) var rtfEspanol= new Intl.RelativeTimeFormat('es', {  numeric: 'auto' }); console.log( rtfEspanol.format( 5, 'day' ) ); // dentro de 5 d├нas console.log( rtfEspanol.format( -5, 'day' ) ); // hace 5 d├нas console.log( rtfEspanol.format( 15, 'minute' ) ); // dentro de 15 minutos 

тЖТ рд╕рд╣рд╛рдпрддрд╛



тЦНIntl.ListFormat ()


Intl.ListFormat рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ Intl.ListFormat рд╢рдмреНрджреЛрдВ and ( ) рдФрд░ ( ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╕рдВрдмрдВрдзрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп, рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рд▓реЛрдХреЗрд▓ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ type рдкреИрд░рд╛рдореАрдЯрд░ conjunction , disjunction рдФрд░ unit ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╣рдо рдПрдХ рд╕рдВрдпреЛрдЬрди рд╡рд╕реНрддреБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП [apples, mangoes, bananas] рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдкреНрд░рдкрддреНрд░ apples, mangoes and bananas рдХрд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд┐рд▓рддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдХрд┐рд╕реА рдбрд┐рд╕рдЬрдВрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдкреНрд░рдкрддреНрд░ apples, mangoes or bananas рдХреА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд┐рд▓рддреА рд╣реИред

Intl.ListFormat рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ Intl.ListFormat .format(list) рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреА рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

 // espa├▒ol ( ) var lfEspanol = new Intl.ListFormat('es', {  type: 'disjunction' }); var list = [ 'manzanas', 'mangos', 'pl├бtanos' ]; console.log( lfEspanol.format( list ) ); // manzanas, mangos o pl├бtanos 

тЖТ рд╕рд╣рд╛рдпрддрд╛



тЦНIntl.Locale ()


"рдХреНрд╖реЗрддреНрд░реАрдп рдорд╛рдирдХ" рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдЖрдорддреМрд░ рдкрд░ рдХрд┐рд╕реА рднрд╛рд╖рд╛ рдХреЗ рдирд╛рдо рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИред рдЗрд╕рдореЗрдВ рдХреИрд▓реЗрдВрдбрд░ рдХрд╛ рдкреНрд░рдХрд╛рд░, рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рдордп рдЪрдХреНрд░ рдФрд░ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдирд╛рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИред Intl.Locale(localeId, config) рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ Intl.Locale(localeId, config) рдЙрдкрдпреЛрдЧ рдЙрд╕ рдкрд░ рджрд┐рдП рдЧрдП config рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрд╡рд░реВрдкрд┐рдд Intl.Locale(localeId, config) рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Intl.Locale рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдИ рдЧрдИ Intl.Locale рд╡рд╕реНрддреБ рдореЗрдВ рд╕рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреНрд╖реЗрддреНрд░реАрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрд╕рдХреА .toString() рд╡рд┐рдзрд┐ рдПрдХ рд╕реНрд╡рд░реВрдкрд┐рдд рдХреНрд╖реЗрддреНрд░реАрдп рдорд╛рдирдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддреА рд╣реИред

 const krLocale = new Intl.Locale( 'ko', {  script: 'Kore', region: 'KR',  hourCycle: 'h12', calendar: 'gregory' } ); console.log( krLocale.baseName ); // ko-Kore-KR console.log( krLocale.toString() ); // ko-Kore-KR-u-ca-gregory-hc-h12 

рдпрд╣рд╛рдВ рдЖрдк рдпреВрдирд┐рдХреЛрдб рдореЗрдВ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдФрд░ рд╕реНрдерд╛рдиреАрдп рдЯреИрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

тЖТ рд╕рд╣рд╛рдпрддрд╛



рд╡рд╛рджрд╛


рдлрд┐рд▓рд╣рд╛рд▓, рдЬреЗрдПрд╕ рдХреЗ рдкрд╛рд╕ рд╕реНрдЯреИрдЯрд┐рдХ рдореЗрдердб Promise.all() рдФрд░ Promise.race() ред The Promise.all([...promises]) рд╡рд┐рдзрд┐ рдПрдХ рд╡рд╛рджреЗ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╣рд▓ рдХрд░рддреА рд╣реИ рдЬреЛ рд╕рднреА рд╡рд╛рджреЛрдВ рдХреЗ рдмрд╛рдж рд╡рд┐рдзрд┐ рд╕реЗ рдкрд╛рд░рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╣рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЗрд╕ рд╡рд╛рджреЗ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд╛рджреЗ рдореЗрдВ рд╕реЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╡рд╛рджреЗ рдХреЛ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПред The Promise.race([...promises]) рд╡рд┐рдзрд┐ рдПрдХ рд╡рд╛рджрд╛ рд▓реМрдЯрд╛рддреА рд╣реИ, рдЬрд┐рд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐рд╕реА рднреА рд╡рд╛рджреЗ рдХреЛ рд╣рд▓ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдЧрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╡рд╛рджреЗ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

тЦН рдкреНрд░реЙрдорд┐рд╕ .allettled () рд╡рд┐рдзрд┐


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

рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рджрд╛ рд╣рдореЗрд╢рд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╣рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред then рдмреНрд▓реЙрдХ рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рджреЗ рд╕реЗ status рдФрд░ value рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╡реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред

 var p1 = () => new Promise(  (resolve, reject) => setTimeout( () => resolve( 'val1' ), 2000 ) ); var p2 = () => new Promise(  (resolve, reject) => setTimeout( () => resolve( 'val2' ), 2000 ) ); var p3 = () => new Promise(  (resolve, reject) => setTimeout( () => reject( 'err3' ), 2000 ) ); var p = Promise.allSettled( [p1(), p2(), p3()] ).then(  ( values ) => console.log( values ) ); //  [ {status: "fulfilled", value: "val1"}  {status: "fulfilled", value: "val2"}  {status: "rejected", value: "err3"} ] 

тЖТ рд╕рд╣рд╛рдпрддрд╛



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


Promise.any() рд╡рд┐рдзрд┐ Promise.any() рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╡рд╛рджрд╛ catch рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдЗрд╕ рдкрджреНрдзрддрд┐ рд╕реЗ рдкрд╛рд░рд┐рдд рд╡рд╛рджреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЦрд╛рд░рд┐рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╡рд╣ рд╕рднреА рд╡рд╛рджреЛрдВ рдХреЗ рд╕рдВрдХрд▓реНрдк рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рд╡рд╛рджрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ catch рдмреНрд▓реЙрдХ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рд╡рд╛рджреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╣рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, then рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

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


рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ Google I / O 2019 рд╕рдореНрдореЗрд▓рди рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд┐рдП рдЧрдП рдХреБрдЫ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХреЛ рджреЗрдЦрд╛ред рд╣рдо рдЖрд╢рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЙрдирдХреЗ рдмреАрдЪ рдХреБрдЫ рдРрд╕рд╛ рдкрд╛рдПрдВрдЧреЗ рдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдЖрдк рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреНрдпрд╛ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ?

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


All Articles