рд╕реНрдЯреИрдВрдб рдкрд░ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг hh.ru # HolyJS18 рдкрд░

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


рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдХреИрд╕реЗ рдЖрдпреЛрдЬрд┐рдд рдХреА рдЧрдИ рдереА, рдЬреЗрдПрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ 15 рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ 4 рд░рд╛рдЙрдВрдб рдереЗ, рд░рд┐рдПрдХреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ 15 рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рд╕реЗ 1-рдЖрдЙрдЯ-рдСрдл-рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рд░рд╛рдЙрдВрдб рдФрд░ 10 рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдПрдХ рдлрд╛рдЗрдирд▓ рдерд╛ред


рдЫрд╡рд┐


рдХрдЯреМрддреА рдХреЗ рддрд╣рдд - рдкрд╣рд▓реЗ 4 рд░рд╛рдЙрдВрдб рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгред


рдпрд╣ рд╣рдорд╛рд░реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рджреВрд╕рд░рд╛ рднрд╛рдЧ рд╣реИред
рдпрд╣рд╛рдБ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдБ


рд╣рдо рд╕рдмрдиреЗ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛? рд╣рдордиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ рд╣рдореЗрдВ рд▓рдЧрднрдЧ 80-90 рд╕рд╡рд╛рд▓ рдкреИрджрд╛ рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ рддрд╛рдХрд┐ рдХреЛрдИ рдРрд╕рд╛ рд╕реНрдЯреЙрдХ рд╣реЛ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдЪреБрдирдирд╛ рд╣реЛред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рд╕рдм рдХреБрдЫ рд╡рд┐рд╖рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛:


  • рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдШрдЯрдирд╛рдПрдБ
  • рд╡рд┐рднрд┐рдиреНрди рдПрдкреАрдЖрдИ (рд╕рд░рдгреА, рд╕реЗрдЯ, рдбрд┐рдлрд╛рдЗрдирдкреНрд░реЛрдкрд░реНрдЯреА, рдЖрджрд┐),
  • рд╕рд╛рд╡рдзрд╛рдиреА
  • рднрд┐рдиреНрдирд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░реЗрдВ
  • рдЙрдард╛рдиреЗ (рдЙрддреНрдерд╛рдкрди)
  • рдШрдЯрдирд╛ рдкрд╛рд╢
  • рдкреНрд░рдХрд╛рд░ рд░реВрдкрд╛рдВрддрд░рдг
  • typeof
  • рддрд╛рд░реНрдХрд┐рдХ (рддрд╛рд░реНрдХрд┐рдХ рдФрд░ OR рдХреЗ рд╕рд╛рде)

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


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


рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдкреНрд░рд╢реНрди:


рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?


console.log(0,1 + 0,2); a) 0.30000000000000004 b) 0.3 c) 2 d) 0 1 2 

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

d) 0 1 2
рдпрд╣рд╛рдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдЦрдбрд╝рд╛ рд╣реИ, рдФрд░ рдирд╣реАрдВ . рдпрджрд┐ рдЖрдк рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреНрд░рд╢реНрди рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
console.log(0, 1 + 0, 2); рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛


рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?


 (() => { 'use strict'; a = null + undefined; console.log(a); })(); a) 0 b) NaN c) null d)  

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

d) рддреНрд░реБрдЯрд┐
a рдХреЛ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ (рд╡реИрд░рд┐рдПрдмрд▓ рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рдирд╣реАрдВ рд╣реИ), рдпрд╣рд╛рдБ рдЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рд╣реИред рдмрд╣реБрдд рдмрд╛рд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЖрдк рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ window.a рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдпрд╣ рдирд┐рд╖рд┐рджреНрдз рд╣реИред


рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?


 let foo = function bar() { return 123; }; console.log( typeof bar() ); a) 'function' b) 'number' c) 'undefined' d)  

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

d) рддреНрд░реБрдЯрд┐
рдпрд╣ рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ (рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐) рд╣реИ - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рд╣реИред рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ foo рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, bar рдирд╣реАрдВред рдпрджрд┐ рдпрд╣ рдПрдХ рдШреЛрд╖рдгрд╛ рд╣реЛрддреА, рддреЛ рдЙрддреНрддрд░ number ред


рдЖрдВрд╢рд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╢реНрди:


рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?


 console.log(0.1 ** 2); a) 0.2 b) 0.01 c) 0.010000000000000002 d) NaN 

рдЬрд╡рд╛рдм рд╣реИ

c) 0.010000000000000002


рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?


 console.log(0.1 + 0.2); a) 0.30000000000000004 b) 0.3 c) 2 d) NaN 

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

a) 0.30000000000000004
** - рдпрд╣ Math.pow рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ 0.1 - рдЗрд╕реЗ 0.01 рдирд┐рдХрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди JS рдореЗрдВ (рдХрдИ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ) рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рдирдВрдмрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдСрдкрд░реЗрд╢рди рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЬреНрдЮрд╛рдд рд╕рдорд╕реНрдпрд╛ рд╣реИред рдпрд╣ 0.010000000000000002 рд╣реЛрдЧрд╛ рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдмрд╛рдЗрдирд░реА рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рдЕрдирдВрдд рдЕрдВрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬреЗрдПрд╕ рдореЗрдВ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ 64 рдмрд┐рдЯреНрд╕ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ - рд╕рднреА рд╕рдВрдЦреНрдпрд╛рдПрдВ рд╣рдореЗрд╢рд╛ рдбрдмрд▓ рд╕рдЯреАрдХ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рд╣реЛрддреА рд╣реИрдВред рдЬреБрдбрд╝рдиреЗ рдкрд░ рд╡рд╣реА рдмрд╛рдд рд╣реЛрддреА рд╣реИред


рд╣рдо рд╕рд╡рд╛рд▓реЛрдВ рдХреЛ рдереЛрдбрд╝рд╛ рдФрд░ рдЬрдЯрд┐рд▓ рдХрд░рддреЗ рд╣реИрдВред


рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдШрдЯрдирд╛рдПрдБ:


рддрддреНрд╡ рдкрд░ рдПрдХ рдШрдЯрдирд╛ рд╣реИрдВрдбрд▓рд░ рд╣реИред рдЗрд╕ рд╣реИрдВрдбрд▓рд░ рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рдореВрд▓реНрдп рд╣рдореЗрд╢рд╛ рд╕рдорд╛рди рд░рд╣реЗрдВрдЧреЗ?


 elem.onclick = function(event) { } a) event.target  event.currentTarget b) event.target  this c) event.currentTarget  this d)     

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

c) event.currentTarget рдФрд░ рдпрд╣
this - рд╣рдореЗрд╢рд╛ рдПрдХ рддрддреНрд╡ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛
currentTarget - рд╡рд╣ рддрддреНрд╡ рдЬрд┐рд╕ рдкрд░ рдИрд╡реЗрдВрдЯ рд▓рдЯрдХрд╛ рд░рд╣рддрд╛ рд╣реИ
target - рд╡рд╣ рддрддреНрд╡ рдЬрд┐рд╕ рдкрд░ рдШрдЯрдирд╛ рд╣реБрдИ


Div рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 div.onclick = function() { console.log(1) }; div.onclick = function() { console.log(2) }; div.addEventListener('click', function() { console.log(3) }); a) 1 b) 1 3 c) 2 3 d) 3 

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

рдЧ) реи рей
onclick рдХрдВрд╕реЛрд▓. console.log(1) рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╣рдо рдЗрд╕реЗ рдПрдХ рдирдП рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдкреАрд╕рддреЗ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ console.log(2) рд╣реА рд░рд╣рддрд╛ рд╣реИред onclick рдПрдХ DOM рдкреНрд░реЙрдкрд░реНрдЯреА рд╣реИ, рдпрд╣ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реИ
рдЗрд╡реЗрдВрдЯ рдЙрд╕ рдХреНрд░рдо рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ рдЬрд┐рд╕рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рд▓рдЯрдХрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкрд╣рд▓реЗ 2 рдлрд┐рд░ 3 рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдпрджрд┐ рд╣рдордиреЗ рдХрдИ рдмрд╛рд░ addEventListener рдХрд┐рдпрд╛, рддреЛ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣реИрдВрдбрд▓рд░ рдХрддрд╛рд░ рдореЗрдВ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред


рд╡рд┐рднрд┐рдиреНрди рдПрдкреАрдЖрдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╢реНрди рдЕрдиреБрднрд╛рдЧ


defineProperty:


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 (() => { const obj = { key: 1 }; Object.defineProperty(obj, 'key', { enumerable: false, configurable: false, writable: false, value: 2 }); console.log(obj.key); obj.key = 3; console.log(obj.key); })(); a) 1, 2 b) 2, 2 c) 2, 3 d)  

рдЬрд╡рд╛рдм рд╣реИ

b) 2, 2


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 (() => { 'use strict'; const obj = { key: 1 }; Object.defineProperty(obj, 'key', { enumerable: false, configurable: false, writable: false, value: 2 }); console.log(obj.key); obj.key = 3; console.log(obj.key); })(); a) 1, 2 b) 2, 2 c) 2, 3 d) 2,  

рдЬрд╡рд╛рдм рд╣реИ

рдбреА) 2, рддреНрд░реБрдЯрд┐


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 (() => { const obj = { key: 1 }; Object.defineProperty(obj, 'key', { enumerable: false, configurable: false, writable: true, value: 2 }); console.log(obj.key); obj.key = 3; console.log(obj.key); })(); a) 1, 2 b) 2, 2 c) 2, 3 d)  

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

c) 2, 3
рдКрдкрд░ рджрд┐рдП рдЧрдП рд╕рднреА рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ defineProperty рд╡рд┐рдзрд┐ рдХреЗ рдЬреНрдЮрд╛рди рдХреА defineProperty рдЬрд╛рддреА defineProperty рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, writable рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред рдпрджрд┐ рдЗрд╕реЗ false рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ false рддреЛ рдХреБрдВрдЬреА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ defineProperty рдХреЛ defineProperty рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ defineProperty рдЬрд╛рдирд╛ defineProperty ред рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдЦреНрдд рдореЛрдб рдХреЗ рдмрд┐рдирд╛ - use strict рдЗрдВрдЬрди рдпрд╣ рджрд┐рдЦрд╛рд╡рд╛ рдХрд░реЗрдЧрд╛ рдХрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореВрд▓реНрдп рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛, рдФрд░ рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред


рд╡реЗрддрди рд╡реГрджреНрдзрд┐:


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 let x = 5; console.log(x++); a) 5 b) 6 c) '5++' d)  

рдЬрд╡рд╛рдм рд╣реИ

рдП) 5


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 const a = 5; console.log(a++); a) 5 b) 6 c) '5++' d)  

рдЬрд╡рд╛рдм рд╣реИ

d) рддреНрд░реБрдЯрд┐
рдЬрдм рдЙрдкрд╕рд░реНрдЧ рдХреЗ рдмрд╛рдж рдХреЗ рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореВрд▓реНрдп рд╡реГрджреНрдзрд┐ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред
рдФрд░ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рдмрд╛рдж, рдЕрд░реНрдерд╛рддреН console.log(++5) 6 рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдЧрд╛
const рдУрд╡рд░рд░рд╛рдЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рд╕рдВрдЦреНрдпрд╛ рдПрдХ рдЖрджрд┐рдо рд╣реИ, рдЬрдм рдЗрд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЪрд░ рдХреЛ рдирдП рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред


рд╕реЗрдЯ рдХрд░реЗрдВ:


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 const a = [...new Set([1, 1, 2, , 3, , 4, 5, 5])]; console.log(a); a) [1, 1, 2, , 3, , 4, 5, 5] b) [1, 2, undefined, 3, 4, 5] c) [1, 1, 2, undefined, 3, undefined, 4, 5, 5] d)  

рдЬрд╡рд╛рдм рд╣реИ

рдмреА) [рез, реи, рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд, рей, рек, рел]


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 let set = new Set([10, '10', new Number(10), 1e1, 0xA]); console.log(set.size); a) 5 b) 3 c) 2 d) 1 

рдЬрд╡рд╛рдм рд╣реИ

b) рей


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 let obj = {}; let set = new Set([obj, obj, {}, {}, {...{}}, {...obj}]); console.log(set.size); a) 6 b) 5 c) 2 d) 1 

рдЬрд╡рд╛рдм рд╣реИ

рдмреА) рел
Set рдПрдХ рд╕реЗрдЯ рд╣реИ, рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрд╕рдореЗрдВ рд╕рдорд╛рди рдореВрд▓реНрдп рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗред рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЗрди рдореВрд▓реНрдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХреИрд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред рдкреНрд░рд┐рдорд┐рдЯрд┐рд╡реНрд╕ рдХреА рддреБрд▓рдирд╛ рд╡реИрд▓реНрдпреВ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рдВрджрд░реНрдн рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред
рдпрд╣ рд╕реНрд╡рдпрдВ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ 1e1 рдФрд░ 0xA рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ - рдПрдХ рджрд╢рдорд▓рд╡ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ 10 рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред
рдФрд░ рдирдИ рд╡рд╕реНрддреБрдПрдВ рд╣рдореЗрд╢рд╛ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ: console.log({} == {}) рддрдм рд╕реЗ false рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕реНрдореГрддрд┐ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдПрдХ рдирдП рддрд░реАрдХреЗ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдВрдХ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 console.log(Infinity / Infinity); a) NaN b) 1 c) Error d) Infinity 

рдЬрд╡рд╛рдм рд╣реИ

a) NaN
рдЕрдирдВрдд рдХреЛ рдЕрдирдВрдд рдореЗрдВ рдмрд╛рдВрдЯрдирд╛ рдФрд░ рдЕрдирдВрдд рдХреЛ рдЕрдирдВрдд рд╕реЗ рдШрдЯрд╛рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ рдЧрдгрд┐рддреАрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдЕрдирд┐рд╢реНрдЪрд┐рддрддрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ, рд╡рд╣реА рдмрд╛рдд рддрдм рд╣реЛрдЧреА рдЬрдм Infinity рдЧреБрдгрд╛ рдХрд┐рдпрд╛ Infinity рд╣реИ рдФрд░ 0 рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг рдЧрдгрд┐рддреАрдп рд╕рдВрдЪрд╛рд▓рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ - рд╡рд╣рд╛рдБ NaN рд╣реЛрдЧрд╛


рд╕реНрдкреНрд░реЗрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╢реНрди:


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 const a = { ...{ a: 1, b: 2, c: 3 }, ...{ a: 2, c: 4, d: 8 } }; console.log(a); a) { a: 2, b: 2, c: 4, d: 8 } c) { a: 1, b: 2, c: 3, d: 8 } c) { a: 1, b: 2, c: 3, a: 2, c: 4, d: 8 } d)  

рдЬрд╡рд╛рдм рд╣реИ

a) {a: 2, b: 2, c: 4, d: 8}


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 const a = [...[1, 2], ...[[3, 4]], ...[5, 6]]; console.log(a); a) [1, 2, 3, 4, 5, 6] b) [1, 2, [3, 4], 5, 6] c) [[1, 2], [[3, 4]], 5, 6] e)  

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

рдмреА) [рез, реи, [рей, рек], рел, рем]
Spread рдСрдкрд░реЗрдЯрд░ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдпрд╛ рд╕рд░рдгреА рдХреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЗрдХрд╛рдИ рд╕реЗ рдорд╛рди рд▓реЗрддрд╛ рд╣реИ ... рдмрд╛рдж рдФрд░ рдмрдирд╛рдИ рдЧрдИ рдПрдХ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдХреЙрдкреА рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдПрдХ рд╕рд░рдгреА рдФрд░ рдПрдХ рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рдпрд╣ 1 рд╕реНрддрд░ рддрдХ рдЦреБрд▓рддрд╛ рд╣реИ рдпрд╛рдиреАред ...[[1]] рдПрдХ рддрддреНрд╡ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрд╛рдПрдЧрд╛, рддрддреНрд╡ рд╣реА рдирд╣реАрдВред рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдХреЛрдИ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдорд╛рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдмрд╛рдж рдореЗрдВ рдмрддрд╛рдП рдЧрдП рдорд╛рдиреЛрдВ рдХреЛ рдЙрди рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рдЦреБрд▓рд╛рд╕рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


 const fn = (actualProps) => ({ ...defaultProps, ...actualProps }) 

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


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 console.log(parseInt(' -10,3   ')); a) -10,3 b) -10 c) TypeError d) NaN 

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

рдмреА) -10
MDN рдХреЗ рд╕рд╛рде рд╡реНрдпрд╛рдкрдХ рд╡рд┐рд╡рд░рдг:
рдпрджрд┐ parseInt рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд╡рд░реНрдг рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдЗрд╕ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдХреЗ рд╕рднреА рд╡рд░реНрдгреЛрдВ (рднрд▓реЗ рд╣реА рд╡реЗ рдЙрдкрдпреБрдХреНрдд рд╣реЛрдВ) рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рднрд╛рдЧ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдкреВрд░реНрдгрд╛рдВрдХ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рд╡рд░реНрдг рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрддрд╛ рд╣реИред parseInt рдХрд┐рд╕реА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рднрд┐рдиреНрдирд╛рддреНрдордХ рднрд╛рдЧ рдХреЛ рдХрд╛рдЯ рджреЗрддрд╛ рд╣реИред рдПрдХ рдкрдВрдХреНрддрд┐ рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд рдореЗрдВ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 const t = { a: 6, b: 7 }; const p = new Proxy(t, { get() { return 12; }, }); console.log(pa); pa = 18; console.log(pa); console.log(ta); a)  b) 12 18 18 c) 12 18 6 d) 12 12 18 e) 6 18 6 

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

d) 12 12 18
Proxy рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЙрд▓ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ рд╡рд┐рдзрд┐ get рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдореЗрд╢рд╛ 12 рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рд╣рдо рдЬрд┐рд╕ рд╡рд╕реНрддреБ рддрдХ рдкрд╣реБрдБрдЪ рд░рд╣реЗ рд╣реИрдВ, рд╡рд╣ рдХрд┐рд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рд╕реЗрдЯ рдХреЛ рд╕реНрдкрд░реНрд╢ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рддреЗ рд╕рдордп, рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдореВрд▓реНрдп рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред


рд╕рд░рдгрд┐рдпреЛрдВ:


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 let arr = []; arr[1] = 1; arr[5] = 10; console.log(arr.length); a) 1 b) 5 c) 6 d) 10 

рдЬрд╡рд╛рдм рд╣реИ

рдЧ) рем


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 let arr = new Array(3); console.log(arr[1]); a) undefined b) 1 c) 3 d)  

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

рдХ) рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд
рдЬрдм рд╣рдо рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдПрдХ Array рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рд░рдгреА рдХреА рд▓рдВрдмрд╛рдИред рдПрдХ рд╕рд░рдгреА рдЦрд╛рд▓реА рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рд╕рднреА рдорд╛рди undefined ред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдЧреИрд░-рд╕рдВрдмрдВрдзрд┐рдд рд╕рд░рдгреА рдлрд╝реАрд▓реНрдб рддрдХ рдкрд╣реБрдБрдЪ рдмрдирд╛рддреЗ рд╣реИрдВ рддреЛ рд╡рд╣реА рдмрд╛рдд рд╣реЛрддреА рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк Array рдХреЛ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рддрддреНрд╡ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреА рдЕрд░реНрдерд╛рддреНред Array('a') рд╡рд╛рдкрд╕ рдЖрдПрдЧрд╛ ['a']


рддрд╛рд░реНрдХрд┐рдХ рд╕рдВрдЪрд╛рд▓рди && , || , == , рдЖрджрд┐:


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 console.log([] && 'foo' && undefined && true && false); a) [] b) 'foo' c) undefined d) true 

рдЬрд╡рд╛рдм рд╣реИ

рдЧ) рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 console.log(0 || 1 && 2 || 3); a) 0 b) 1 c) 2 d) 3 

рдЬрд╡рд╛рдм рд╣реИ

рдЧ) реи


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 console.log(0 || '' || 2 || undefined || true || false); a) 0 b) false c) 2 d) true 

рдЬрд╡рд╛рдм рд╣реИ

рдЧ) реи


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 console.log(2 && '1' && null && undefined && true && false); a) 2 b) false c) undefined d) null 

рдЬрд╡рд╛рдм рд╣реИ

d) рдЕрд╢рдХреНрдд


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 console.log([] && {} || null && 100 || ''); a) true b) 100 c) '' d) {} 

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

d) {}
рдПрдХ рдЦрд╛рд▓реА рд╕рд░рдгреА [] true рдЬреИрд╕рд╛ рдХрд┐ рдПрдХ рдЦрд╛рд▓реА рд╡рд╕реНрддреБ {} ред
рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ '' , null рдФрд░ undefined рд╣реИ
рддрд╛рд░реНрдХрд┐рдХ рдпрд╛ || - рдпрджрд┐ рд╕рд╣реА рд╣реИ, рддреЛ рдмрд╛рдПрдВ рдСрдкрд░реЗрдВрдб рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рд╕рд╣реА рдСрдкрд░реЗрдВрдб рджреЗрддрд╛ рд╣реИред
рддрд╛рд░реНрдХрд┐рдХ рдФрд░ && - рдпрджрд┐ рд╡рд╣ рдЧрд▓рдд рд╣реИ, рддреЛ рдмрд╛рдПрдВ рдСрдкрд░реЗрдВрдб рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рд╕рд╣реА рдСрдкрд░реЗрдВрдб рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИред


рдпрд╣ рдХрднреА-рдХрднреА рдХреЛрдб рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ рдкрд╣рд▓реЗ, рд╡реЗ рдЕрдХреНрд╕рд░ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрддреЗ рдереЗ - рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХреЛрдИ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рд╣рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрддреЗ рд╣реИрдВ:


 function f(userParams) { var params = userParams || defaultParams; } 

рдЕрдм рд░рд┐рдПрдХреНрдЯ рдЕрдХреНрд╕рд░ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рд╛рд▓рдд рд╕рдЪ рд╣реИ, рддреЛ рд╣рдо рдХреБрдЫ рджреЗрддреЗ рд╣реИрдВ:


 { isDivVisible && <div>bla-bla</div> } 

рд╕рд░рдгреА рддреБрд▓рдирд╛:


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 const arrayFoo = [1, 2, 3, 4]; const arrayBaz = [1, 2, 3, 4]; console.log(arrayFoo == arrayBaz && arrayFoo == arrayBaz); a) false b) true c) undefined d)  

рдЬрд╡рд╛рдм рд╣реИ

a) рдЕрд╕рддреНрдп


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 console.log([null, 0, -0].map(x => 0 <= x)); a) [false, true, false] b) [false, true, true] c) [false, false, false] d) [true, true, true] 

рдЬрд╡рд╛рдм рд╣реИ

рдШ) [рд╕рддреНрдп, рд╕рддреНрдп, рд╕рддреНрдп]


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 const arrayFoo = [1, 2, 3, 4]; const arrayBaz = [1, 2, 3, 4]; console.log(arrayFoo >= arrayBaz && arrayFoo <= arrayBaz); a) true b) false c) undefined d)  

рдЬрд╡рд╛рдм рд╣реИ

рдХ) рд╕рдЪ рд╣реИ


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 const foo = [1, 2, 3, 4]; const baz = '1,2,3,4'; console.log(foo >= baz && foo <= baz); a) false b) true c) undefined d)   

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

рдЦ) рд╕рдЪ рд╣реИ
рдЬрдм == рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рддреБрд▓рдирд╛ рдХрд░реЗрдВред
рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди >, >=, <, <= рдСрдкрд░реЗрдВрдб рдХреЛ рдкреНрд░рд┐рдорд┐рдЯрд┐рд╡ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ arrayFoo рдкрд░ arrayFoo рд╡рд┐рдзрд┐ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдкреНрд░рд┐рдорд┐рдЯрд┐рд╡ рд╡реИрд▓реНрдпреВ arrayFoo рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрд╕реА рдРрд░реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИред рдЕрдЧрд▓рд╛, рдПрдХ рдЖрджрд┐рдо рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рд░реВрдкрд╛рдВрддрд░рдг рд╣реЛрддрд╛ рд╣реИ рдЬреЛ toString рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ "1,2,3,4" рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд░рдгреА рдХреЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рд▓реМрдЯрд╛рдПрдЧрд╛, рд▓реЗрдХреНрд╕рд┐рдХреЛрдЧреНрд░рд╛рдлрд┐рдХ рд░реВрдк рд╕реЗ рджреЛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ true рд▓реМрдЯрд╛рддрд╛ true


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 console.log(+0 == -0); console.log(+0 === -0); console.log(Object.is(+0, -0)); a) true, false, false b) true, true, false c) false, true, true d) false, false. false 

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

рдЦ) рд╕рдЪреНрдЪрд╛, рд╕рдЪреНрдЪрд╛, рдЭреВрдард╛
рдПрдордбреАрдПрди рдХреЗ рд╕рд╛рде рд╡реНрдпрд╛рдкрдХ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг:
рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ ( Object.is рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд Object.is ) === рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИред рдСрдкрд░реЗрдЯрд░ === (рд╕рд╛рде рд╣реА рд╕рд╛рде рдСрдкрд░реЗрдЯрд░ == ) рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рдиреЛрдВ -0 рдФрд░ +0 рд╕рдорд╛рди Number.NaN , рдФрд░ рдорд╛рди Number.NaN рд╕реНрд╡рдпрдВ рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИред


рдЙрддреНрдерд╛рдкрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╢реНрди:


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 console.log(str); const str = 'HeadHunter'; a) 'HeadHunter' b) undefined c)  

рдЬрд╡рд╛рдм рд╣реИ

рдЧ) рддреНрд░реБрдЯрд┐


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 var arrayFunction = []; for (let i = 0; i <= 10; i++) { arrayFunction.push(() => i); } console.log(arrayFunction[3]()); a) 4 b) 0 c) 11 d) 3 

рдЬрд╡рд╛рдм рд╣реИ

рдШ) рей


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 console.log(str); var str = 'HeadHunter'; a) 'HeadHunter' b) undefined c) null c)   

рдЬрд╡рд╛рдм рд╣реИ

рдЦ) рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 console.log(foo); var foo; foo = foo ? 1 : 0; console.log(foo); a)  b) undefined 0 c) '' 1 d) 0 0 

рдЬрд╡рд╛рдм рд╣реИ

рдЦ) рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд реж


рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХрд╛рдо рдХрд░реЗрдЧрд╛?


 getCompanyName(); function getCompanyName() { return 'HeadHunter'; } a)  b) ,     . c)  

рдЬрд╡рд╛рдм рд╣реИ

a) рд╣рд╛рдВ


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 var arrayFunction = []; for (var i = 0; i <= 10; i++) { arrayFunction.push(() => i); } console.log(arrayFunction[3]()); a) 4 b) 0 c) 11 d) 3 

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

рдЧ) резрез


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


рд▓реВрдк рдХреЗ рд▓рд┐рдП var рд╕рд╛рде рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП var рдЖрдкрдХреЛ рдПрдХ рдХреНрд▓реЛрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рдореВрд▓реНрдп рд╕рд╣реЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред
(рдпрд╣ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рдХрд╛рд░реНрдп рд╣реБрдЖ рдХрд░рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реИ)


 var arrayFunction = []; for (var i = 0; i <= 10; i++) { (function(i) { arrayFunction.push(() => i); })(i); } console.log(arrayFunction[3]()); 

рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 console.log(true + false); a) true b) false c) 1 d) 0 

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

рдЧ) рез
рдХреЛрдИ рднреА рдСрдкрд░реЗрдЯрд░ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ, + рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ 1 + 0 рдирд┐рдХрд▓рд╛


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 console.log([] - 100 + ![]); a) false b) '-100' c) -100 d) NaN 

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

c) -100
рд╕рд░рдгреА рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдмрд╛рдж, рдХреНрдпреЛрдВрдХрд┐ - рд╣рдо рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ -100 , рдпрд╣ -100 рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ, рдлрд┐рд░ рд╣рдо рд╕рд░рдгреА рдХреЛ false , рдФрд░ рдпрд╣ 0


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 console.log([[], []] + 1); a) 1 b) '1' c) ',1' d) NaN 

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

рдЧ) ', 1'
рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ toString рдХреЛ toString рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ toString рдХреЛ рдПрд░реЗ рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдкрд░ рднреА рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред [].toString рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рдПрдЧрд╛ '' ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ , + 1 - рдЙрддреНрддрд░ ,1 ред


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 console.log([] + 100 + 5); a) 105 b) '1005' c) 1005 d) NaN 

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

рдмреА) '1005'
рд╕рд░рдгреА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП reducible рд╣реИ, рдФрд░ рдлрд┐рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрдЧрддрд┐ рд╣реЛрддреА рд╣реИред


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 console.log(1 + { a: 3 } + '2'); a) 6 b) '1[object Object]2' c) 3 d) NaN 

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

рдмреА) '1 [рдСрдмреНрдЬреЗрдХреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ] 2'
рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВ - рдпрд╣ рд╕рд┐рд░реНрдл рд╕рдВрдШрдирди рд╣реИред


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 console.log(10.toString() + 10 + 0x1); a) '10101' b) 21 c) '10100x1' d)  

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

d) рддреНрд░реБрдЯрд┐
рдПрдХ рдирдВрдмрд░ рдХреЗ рд▓рд┐рдП, рдПрдХ рдбреЙрдЯ . рднрд┐рдиреНрдирд╛рддреНрдордХ рднрд╛рдЧ рдХреА рд╢реБрд░реБрдЖрдд рдХрд╛ рдорддрд▓рдм рд╣реИ, рд╣рдо рд╡рд╣рд╛рдБ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ - рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ 10..toString() рд▓рд┐рдЦрдирд╛ 10..toString()


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 console.log(5 + false - null + true); a) '0true' b) NaN c) 6 d)   

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

рдЧ) рем
рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдШрдЯрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ 5 + 0 - 0 + 1 рдирд┐рдХрд▓рд╛


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 console.log(true + NaN + false); a) true b) NaN c) false d) 1 

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

b) NaN
NaN рд╕рд╛рде рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдкрд░ рд╣рдо рд╕рдм рдХреБрдЫ NaN - NaN рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 console.log('0x1' + '1' - '1e1'); a) 17 b) 7 c) '0x111e1' d) NaN 

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

рдмреА) 7
рдкрд╣рд▓реА '0x11' - '1e1' рдмрд╛рдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ, рд╣рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ: '0x11' - '1e1' ред рд╕рд╛рдЗрди рдХреА рд╡рдЬрд╣ рд╕реЗ - рд╣рдо рд╕рдм рдХреБрдЫ рдПрдХ рдирдВрдмрд░ рдкрд░ рд▓рд╛рддреЗ рд╣реИрдВред
0x11 - рджрд╢рдорд▓рд╡ рдореЗрдВ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рд╕рдВрдЦреНрдпрд╛ 17 ред
1e1 - рдШрд╛рддреАрдп рд░реВрдк 1 * 10 ** 1 - рдЕрд░реНрдерд╛рдд рд╕рд┐рд░реНрдл 10 ред


typeof:


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 let foo = () => { return null; }; console.log( typeof typeof foo ); a) 'function' b) 'string' c) 'null' d)  

рдЬрд╡рд╛рдм рд╣реИ

рдмреА) 'рд╕реНрдЯреНрд░рд┐рдВрдЧ'


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 typeof function() {}.prototype; a) 'function' b) 'object' c) 'undefined' d)  

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

рдмреА) 'рдСрдмреНрдЬреЗрдХреНрдЯ'
typeof рд╣рдореЗрд╢рд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд╣рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ typeof рдХреЛ рдЙрд╕ рдкрд░рд┐рдгрд╛рдо рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрдВрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ Function.prototyp рд╕реЗ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рддреЗ рд╣реИрдВред рд╕реНрдкреЗрдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╡рд╕реНрддреБ рд╣реИред


рдЗрд╡реЗрдВрдЯ рд▓реВрдк:


рдЖрдЗрдП рд╡рд╛рджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ 2 рд╕рд╡рд╛рд▓реЛрдВ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 Promise.reject() .then(() => console.log(1), () => console.log(2)) .then(() => console.log(3), () => console.log(4)); a) 1 4 b) 1 3 c) 2 3 d) 2 4 

рдЬрд╡рд╛рдм рд╣реИ

рдЧ) реи рей


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 Promise.reject('foo') .then(() => Promise.resolve('bar'), () => {}) .then((a) => {console.log(a)}) a) foo b) bar c) undefined d)  

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

рдЧ) рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд
Promise.reject - рдПрдХ рдЕрд╕реНрд╡реАрдХреГрдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдПрдХ рд╡рд╛рджрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
рдпрд╣ рдпрд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ then 2 рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрддрд╛ рд╣реИ, onFulfill рдФрд░ onReject рдХреЙрд▓рдмреИрдХред рдпрджрд┐ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ, рддреЛ рд╣рдо onReject рдХреЙрд▓рдмреИрдХ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред рдЕрдЧрд░ рдЗрд╕рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рдЕрдЧрд▓реЗ onFulfill рдкрд░ onFulfill ред рдФрд░ рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ () => {} рдПрдХ рдЦрд╛рд▓реА рд╡рд╕реНрддреБ рдирд╣реАрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди undefined , рдПрдХ рдЦрд╛рд▓реА рд╡рд╕реНрддреБ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛: () => ({})


рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдХреНрд░рдоред


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 async function get1() { return 1; } function get2() { return 2; } (async () => { console.log(await get1()); })(); console.log(get2()); a) 1,2 b) 2,1 c) 1 d) 2 

рдЬрд╡рд╛рдм рд╣реИ

b) 2.1


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 setTimeout(() => {console.log('in timeout')}); Promise.resolve() .then(() => {console.log('in promise')}); console.log('after'); a) in timeout, in promise, after b) after, in promise, in timeout c) after, in timeout, in promise d) in timeout, after, in promise 

рдЬрд╡рд╛рдм рд╣реИ

рдмреА) рдХреЗ рдмрд╛рдж, рд╡рд╛рджрд╛ рдореЗрдВ, рдордзреНрдпрд╛рдВрддрд░ рдореЗрдВ


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 let __promise = new Promise((res, rej) => { setTimeout(res, 1000); }); async function test(i) { await __promise; console.log(i); } test(1); test(2); a) 1, 2 b) 2, 1 c) 1 d) 2 

рдЬрд╡рд╛рдм рд╣реИ

a) 1, 2


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 console.log('FUS'); setTimeout(() => {console.log('RO')}) Promise.resolve('DAH!').then(x => console.log(x)); a FUS RO DAH! b) FUS DAH! RO c) RO FUS DAH! d) DAH! RO FUS 

рдЬрд╡рд╛рдм рд╣реИ

b) FUS DAH! рдЖрд░рдУ


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 console.log(1); setTimeout(() => console.log('setTimeout'), 0); console.log(2); Promise.resolve().then(() => console.log('promise1 resolved')); console.log(3); a) 1, 2, 3, 'setTimeout', 'promise1 resolved' b) 1, 'setTimeout', 2, 'promise1 resolved', 3 c) 1, 2, 3, 'promise1 resolved', 'setTimeout' d) 1, 2, 'promise1 resolved', 3, 'setTimeout' 

рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

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


рдФрд░ рдЖрдЦрд┐рд░реА рдкреНрд░рд╢реНрди рд╡рд╛рджрд╛ рдмрдирд╛рдо рдкреНрд░рддреАрдХреНрд╖рд╛


рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


 const p = Promise.resolve(); (async () => { await p; console.log('1'); })(); p.then(() => console.log('2')) .then(() => console.log('3')); 

a) 1 2 3
b) 2 1 3
c) 2 3 1
d) 3 2 1


рдЙрддреНрддрд░ + рдкрд╛рд░реНрд╕рд┐рдВрдЧ

c) 2 3 1


рдпреБрдХреНрддрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░, then рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреЛрдбрд╝реЗ рдЧрдП рд╡рд╛рджреЛрдВ рдХреЛ рдкрд╣рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЖрдкрдХреЛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдорд╛рд░реЛрд╣ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрдиред рд╕реНрдкреЗрдХ ред рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реИ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЛ v8.dev рдкрд░ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рд▓реЗрдЦ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ

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


All Articles