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

рдЖрджрд┐рдо рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрджрд┐рдо рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:
number
,
boolean
,
string
,
undefined
,
null
ред рдпрд╣ рддреБрд░рдВрдд рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐, рдЬрдм рдЖрджрд┐рдо рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢рд╛рдмреНрджрд┐рдХ рдХреЗ рд╕рд╛рде, рд╣рдо, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрд╛рдВрддрд░рдг рдХрд┐рдП рдмрд┐рдирд╛ рднреА, рдЙрдирдХреЗ рддрд░реАрдХреЛрдВ рдФрд░ рдЧреБрдгреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред рдпрд╣рд╛рдБ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЗрд╕ рддрд░рд╣ рдХреЗ рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╡рд╕реНрддреБ рдЖрд╡рд░рдг рд╕реЗ рд╕реБрд╕рдЬреНрдЬрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
тЦН рд╕рдВрдЦреНрдпрд╛рдПрдБ
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ - рдпрд╣ рджреЛрд╣рд░реА рд╕рдЯреАрдХ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рд╕рдВрдЦреНрдпрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдЕрдВрдХрдЧрдгрд┐рддреАрдп рд░реВрдк рд╕реЗ рдЧрд▓рдд рд╣реИрдВред рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реЛрдВрдЧреЗ рдХрд┐ рдЬреЗрдПрд╕ рдореЗрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдорд╛рди
0.1 + 0.2
рдирд╣реАрдВ
0.3
ред рдЙрд╕реА рд╕рдордп, рдЬрдм рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдПрдВ рдирд╣реАрдВ рджреЗрдЦреА рдЬрд╛рддреА рд╣реИрдВ, рдЕрд░реНрдерд╛рдд
1 + 2 === 3
ред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ
Number
рд╡рд╕реНрддреБ рд╣реИ, рдЬреЛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╕реНрддреБ рдЖрд╡рд░рдг рд╣реИред рдкреНрд░рдХрд╛рд░
Number
рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдпрд╛ рддреЛ рдкреНрд░рдкрддреНрд░
var a = new Number(10)
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдЖрдк рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЖрдк рд╕рдВрдЦреНрдпрд╛рддреНрдордХ
Number.prototype
рдкрд░ рд▓рд╛рдЧреВ
Number.prototype
рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
(123).toString(); //"123" (1.23).toFixed(1); //"1.2"
рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╡реИрд╢реНрд╡рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВред рдпрд╣
parseInt()
,
parseFloat()
рдФрд░
Number()
рдирд┐рд░реНрдорд╛рдг рд╣реИ, рдЬреЛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЯрд╛рдЗрдк рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рддрд╛ рд╣реИ:
parseInt("1") //1 parseInt("text") //NaN parseFloat("1.234") //1.234 Number("1") //1 Number("1.234") //1.234
рдпрджрд┐ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ рдРрд╕рд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдирд╣реАрдВ рд╣реИ (рдХреБрдЫ рдЧрдгрдирд╛рдУрдВ рдХреЗ рджреМрд░рд╛рди, рдпрд╛ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЛ рдХрд┐рд╕реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп), рддреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдРрд╕реЗ рдСрдкрд░реЗрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдорд╛рди
NaN
(рдиреЙрдЯ-рдП-рдирдВрдмрд░) рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдЧрд╛ред рд╕рдВрдЦреНрдпрд╛ рдирд╣реАрдВ)ред рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рди
NaN
, рдЖрдк
isNaN()
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЬреЗрдПрд╕ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдСрдкрд░реЗрд╢рди рдХрд╛рдлреА рдкрд░рд┐рдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐
+
рдСрдкрд░реЗрдЯрд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рддрд╛рд░реЛрдВ рдХрд╛ рд╕рдВрдШрдирди рдХрд░ рд╕рдХрддрд╛ рд╣реИред
1 + 1 //2 "1" + "1" //"11" 1 + "1" //"11"
тЦНStroki
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддрд╛рд░ рдпреВрдирд┐рдХреЛрдб рд╡рд░реНрдг рдХреЗ рддрд╛рд░ рд╣реИрдВред рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢рд╛рдмреНрджрд┐рдХ рдкрд╛рда рджреЛрд╣рд░реЗ (
""
) рдпрд╛ рдПрдХрд▓ (
''
) рдЙрджреНрдзрд░рдгреЛрдВ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд▓рдЧреНрди рдХрд░рдХреЗ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрдм рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢рд╛рдмреНрджрд┐рдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╕рдВрдмрдВрдзрд┐рдд рд╡рд╕реНрддреБ рдЖрд╡рд░рдг рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдореЗрдВ рдХрдИ рдЙрдкрдпреЛрдЧреА рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВ, рдЙрдирдореЗрдВ рд╕реЗ
substring()
,
indexOf()
,
concat()
ред
"text".substring(1,3) //ex "text".indexOf('x') //2 "text".concat(" end") //text end
рдЕрдиреНрдп рдЖрджрд┐рдо рдореВрд▓реНрдпреЛрдВ рдХреА рддрд░рд╣ рддрд╛рд░ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
concat()
рд╡рд┐рдзрд┐ рдореМрдЬреВрджрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдирдпрд╛ рдмрдирд╛рддреА рд╣реИред
тЦНLogical рдорд╛рди
рдЬреЗрдПрд╕ рдореЗрдВ рддрд╛рд░реНрдХрд┐рдХ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЛ рджреЛ рдореВрд▓реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ -
true
рдФрд░
false
ред рднрд╛рд╖рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдорд╛рдиреЛрдВ рдХреЛ рддрд╛рд░реНрдХрд┐рдХ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рддрд╛рд░реНрдХрд┐рдХ,
false
рдорд╛рди рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдорд╛рди
null
,
undefined
,
''
(рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ),
0
рдФрд░
NaN
ред рдХрд┐рд╕реА рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд╣рд┐рдд рдмрд╛рдХреА рд╕рдм, рд╕рд╣реА рдЕрд░реНрдереЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рддрд╛рд░реНрдХрд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди, рдЬреЛ рдХреБрдЫ рднреА рд╕рдЪ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд╣ рд╕рддреНрдп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддрд╛
true
, рдФрд░ рдЬреЛ рдХреБрдЫ рднреА рдЧрд▓рдд рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рд╡рд╣ рд╕рдм рдЭреВрда рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛
false
ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рдЙрдкрд░реЛрдХреНрдд рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ
false
рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
false
рдФрд░ рдЗрд╕ рдХреЛрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧ
This is false
рд╣реИ, рдХрдВрд╕реЛрд▓ рдХреЛ рдорд┐рд▓реЗрдЧрд╛ред
let text = ''; if(text) { console.log("This is true"); } else { console.log("This is false"); }
рд╡рд╕реНрддреБрдПрдВ
рдСрдмреНрдЬреЗрдХреНрдЯ рдЧрддрд┐рд╢реАрд▓ рд╕рдВрд░рдЪрдирд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдорд╛рди рдореЗрдВ рдЖрджрд┐рдо рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдСрдмреНрдЬреЗрдХреНрдЯ рдпрд╛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдмреНрджрд┐рдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ:
let obj = { message : "A message", doSomething : function() {} }
рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдХрд┐рд╕реА рднреА рд╕рдордп рдкрдврд╝рд╛, рдЬреЛрдбрд╝рд╛, рд╕рдВрдкрд╛рджрд┐рдд рдФрд░ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ:
- рдкрдврд╝рдирд╛ рдЧреБрдг:
object.name, object[expression]
ред - рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд▓рд┐рдЦрдирд╛ (рдпрджрд┐ рдПрдХреНрд╕реЗрд╕ рдХреА рдЬрд╛ рд░рд╣реА рд╕рдВрдкрддреНрддрд┐ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдПрдХ рдирдИ рд╕рдВрдкрддреНрддрд┐ рдЬреЛрдбрд╝реА рдЧрдИ рд╣реИ):
object.name = value
, object[expression] = value
ред - рдЧреБрдг
delete object.name
: delete object.name
, delete object[expression]
ред
рдпрд╣рд╛рдБ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ:
let obj = {}; // obj.message = "A message"; // obj.message = "A new message"; // delete object.message; //
рднрд╛рд╖рд╛ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╣реИрд╢ рдЯреЗрдмрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Object.create(null)
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ:
let french = Object.create(null); french["yes"] = "oui"; french["no"] = "non"; french["yes"];//"oui"
рдпрджрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк
Object.freeze()
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рднреА рдЧреБрдгреЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк
Object.keys()
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
function logProperty(name){ console.log(name); // console.log(obj[name]); // } Object.keys(obj).forEach(logProperty);
Types рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░ рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди
рдЖрджрд┐рдо рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХрд╛рд░реНрдп рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдЧреБрдг рдФрд░ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реИрдВред рдЖрджрд┐рдо рдореВрд▓реНрдп рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИрдВ, рд╡рд╕реНрддреБрдУрдВ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдмрджрд▓ рд╕рдХрддреА рд╣реИред
рдЪрд░
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ
var
,
let
рдФрд░
const
рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
var
рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЗрд╕реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдЖрд░рдВрдн рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЪрд░ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорд╛рди
undefined
ред
var
рдХреАрд╡рд░реНрдб рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдШреЛрд╖рд┐рдд рдЪрд░ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЧреБрдВрдЬрд╛рдЗрд╢ рд╣реЛрддреА рд╣реИред
let
рдХреАрд╡рд░реНрдб,
var
рд╕рдорд╛рди рд╣реИ, рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐
let
рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╡реИрд░рд┐рдПрдмрд▓ рдореЗрдВ рдмреНрд▓реЙрдХ рд╕реНрдХреЛрдк рд╣реИред
const
рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдореЗрдВ рдПрдХ рдмреНрд▓реЙрдХ рд╕реНрдХреЛрдк рднреА рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕ рддрдереНрдп рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреЛ рдЕрдзрд┐рдХ рд╕рд╣реА рдврдВрдЧ рд╕реЗ "рдХреЙрдиреНрд╕реНрдЯреЗрдВрдЯ" рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред
const
рдХреАрд╡рд░реНрдб, рдЬреЛ "рдлреНрд░реАрдЬрд╝" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЧрдП рдПрдХ рдЪрд░ рдХреЗ рдореВрд▓реНрдп рдХреЛ
Object.freeze()
рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ "рдлреНрд░реАрдЬ" рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ред
рдпрджрд┐ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рд╣рд░ рдПрдХ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рджрд╛рдпрд░рд╛ рд╡реИрд╢реНрд╡рд┐рдХ рд╣реИред
рд╕рд░рдгрд┐рдпреЛрдВ
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрд░реЗ рдХреЛ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╕рдордп, рд╣рдо, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рдорд╛рди рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдЕрдкрдиреЗ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░рдгреА рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕реВрдЪрдХрд╛рдВрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕рд░рдгреА рддрддреНрд╡реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╛рдореЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
arr[1]
рдлреЙрд░реНрдо
arr[1]
рдПрдХ
arr['1']
рдлреЙрд░реНрдо
arr['1']
рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдорд╛рди рд╣реИ, рдФрд░ рджреЛрдиреЛрдВ рд╕рдорд╛рди рдореВрд▓реНрдп рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗ:
arr[1] === arr['1']
ред рдЙрдкрд░реНрдпреБрдХреНрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдШреЛрд╖рд┐рдд рдПрдХ рд╕рд░рд▓ рд╕рд░рдгреА
let arr = ['A', 'B', 'C']
рдХреЛ рдирд┐рдореНрди рдлреЙрд░реНрдо рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
{ '0': 'A', '1': 'B', '2': 'C' }
delete
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрд░реЗ рддрддреНрд╡реЛрдВ рдХреЛ
delete
рдЗрд╕рдореЗрдВ рдЫреЗрдж рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк
splice()
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдзреАрд░реЗ-рдзреАрд░реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрд┐рд╕реА рддрддреНрд╡ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рд╕рд░рдгреА рдХреЗ рд╢реЗрд╖ рддрддреНрд╡реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рд╕рд░рдгреА рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдмрд╛рдИрдВ рдУрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
let arr = ['A', 'B', 'C']; delete arr[1]; console.log(arr); // ['A', empty, 'C'] console.log(arr.length); // 3
рдПрд░реЗ рддрд░реАрдХреЛрдВ рд╕реЗ рд╕реНрдЯреИрдХ рдФрд░ рдХрддрд╛рд░реЛрдВ рдЬреИрд╕реА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:
// let stack = []; stack.push(1); // [1] stack.push(2); // [1, 2] let last = stack.pop(); // [1] console.log(last); // 2 // let queue = []; queue.push(1); // [1] queue.push(2); // [1, 2] let first = queue.shift();//[2] console.log(first); // 1
рдХрд╛рд░реНрдпреЛрдВ
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд╛рд░реНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВред рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЪрд░ рдХреЗ рд▓рд┐рдП рд╕реМрдВрдкрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╡рд╕реНрддреБрдУрдВ рдпрд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рддреАрди рддрд░реАрдХреЗ рд╣реИрдВ:
- рдХреНрд▓рд╛рд╕рд┐рдХрд▓ рдлрдВрдХреНрд╢рди рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди (рдлрдВрдХреНрд╢рди рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рдпрд╛ рдлрдВрдХреНрд╢рди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ)ред
- рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ (рдлрдВрдХреНрд╢рди рдПрдХреНрд╕рдкреНрд░реЗрд╢рди) рдХрд╛ рдЙрдкрдпреЛрдЧ, рдЬрд┐рд╕реЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╢рд╛рдмреНрджрд┐рдХ (рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЯрд░рд▓) рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
- рддреАрд░ рдлрд╝рдВрдХреНрд╢рди (рдПрд░реЛ рдлрд╝рдВрдХреНрд╢рди) рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
Ation рдХреНрд▓рд╛рд╕рд┐рдХ рд╕рдорд╛рд░реЛрд╣ рдШреЛрд╖рдгрд╛
рдШреЛрд╖рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдо рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ:
- рдлрд╝рдВрдХреНрд╢рди рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рд▓рд╛рдЗрди рдореЗрдВ рдкрд╣рд▓рд╛ рдХреАрд╡рд░реНрдб
function
ред - рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХ рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
- рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рддрдВрддреНрд░ рдХреЛ рдЙрд╕ рджрд╛рдпрд░реЗ рдХреЗ рд╢реАрд░реНрд╖ рддрдХ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рдХрд╛рд░рдг рдЗрд╕рдХреА рдШреЛрд╖рдгрд╛ рд╕реЗ рдкрд╣рд▓реЗ рдХреЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдШреЛрд╖рдгрд╛ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
function doSomething(){}
Expressions рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐
рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
function
рдХреАрд╡рд░реНрдб рдЕрдм рдлрд╝рдВрдХреНрд╢рди рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рд▓рд╛рдЗрди рдореЗрдВ рдкрд╣рд▓рд╛ рд╢рдмреНрдж рдирд╣реАрдВ рд╣реИред- рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред рдЕрдирд╛рдо рдФрд░ рдирд╛рдорд┐рдд рджреЛрдиреЛрдВ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
- рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдХреЛ рдЙрдирдХреЗ рдШреЛрд╖рдгрд╛ рдХреЗ рд▓рд┐рдП рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
- рдЗрд╕ рддрд░рд╣ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ IIFE рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдШреЛрд╖рдгрд╛ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рддреБрд░рдВрдд рдЗрдирд╡реЙрдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ - рддреБрд░рдВрдд рдлрд╝рдВрдХреНрд╢рди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:
let doSomething = function() {}
Functions рддреАрд░ рдХрд╛рд░реНрдп
рддреАрд░ рдХрд╛рд░реНрдп, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, "рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЪреАрдиреА" рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЧреБрдордирд╛рдо рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдВ рдмрдирд╛рдИ рдЬрд╛ рд╕рдХреЗрдВред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЕрдкрдиреА рд╕рдВрд╕реНрдерд╛рдПрдВ рдФрд░
arguments
ред рддреАрд░ рдлрд╝рдВрдХреНрд╢рди рдШреЛрд╖рдгрд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:
let doSomething = () = > {};
тЦН рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ
рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓
doSomething(arguments)
рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓
theObject.doSomething(arguments) theObject["doSomething"](arguments)
рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓
new doSomething(arguments)
рд▓рд╛рдЧреВ () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛
doSomething.apply(theObject, [arguments]) doSomething.call(theObject, arguments)
рдмрд╛рдЗрдВрдб () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛
let doSomethingWithObject = doSomething.bind(theObject); doSomethingWithObject();
рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЧрдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди, "рдЕрддрд┐рд░рд┐рдХреНрдд" рддрд░реНрдХреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрди рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрдЧрд╛), рд▓рд╛рдкрддрд╛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ
undefined
рдорд╛рди рдорд┐рд▓реЗрдЧрд╛ред
рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рджреЛ рдЫрджреНрдо рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ:
this
рдФрд░
arguments
ред
This рдпрд╣ рдЦреЛрдЬрд╢рдмреНрдж
this
рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рд╡рд╣ рдорд╛рди рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреИрд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
this
рдХреАрд╡рд░реНрдб рдХреЗ рдЕрд░реНрде
this
рдЖрдзрд╛рд░ рдкрд░ рд╣реИрдВ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреИрд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИрдВ, рдЬрд┐рдирдХреЗ рдирд┐рд░реНрдорд╛рдг рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд╣реИрдВ):
- рд╕рд╛рдорд╛рдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓
window
/ undefined
ред - рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓
theObject
ред - рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдПрдХ рдирдИ рд╡рд╕реНрддреБ рд╣реИред
apply()
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ - theObject
редbind()
рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ - theObject
ред
Word рдХреАрд╡рд░реНрдб рддрд░реНрдХ
arguments
рдХреАрд╡рд░реНрдб рдПрдХ рдЫрджреНрдо рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рддрд░реНрдХреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рд╕рд░рдгреА рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рд░рдгреА рдХреА рддрд░рд╣ рдирд╣реАрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЗрд╕рдореЗрдВ рд╕рд░рдгреА рд╡рд┐рдзрд┐рдпрд╛рдБ рдирд╣реАрдВ рд╣реИрдВред
function reduceToSum(total, value){ return total + value; } function sum(){ let args = Array.prototype.slice.call(arguments); return args.reduce(reduceToSum, 0); } sum(1,2,3);
arguments
рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╢реЗрд╖ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ,
args
рдПрдХ рд╕рд░рдгреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рдм рдХреБрдЫ рд╣реИ рдЬрд┐рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
function sum(...args){ return args.reduce(reduceToSum, 0); }
тЦНрдСрдкрд░реЗрдЯрд░ рдХреА рд╡рд╛рдкрд╕реА
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕
return
рдирд╣реАрдВ рд╣реИ,
undefined
рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред
return
рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рд╕рдореНрдорд┐рд▓рди рддрдВрддреНрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдЦрд╛рд▓реА рд╡рд╕реНрддреБ рдирд╣реАрдВ рд▓реМрдЯрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдХ
undefined
рдореВрд▓реНрдп:
function getObject(){ return { } } getObject()
рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рд┐рд╡рд░рдг рдХрд░реНрд▓реА рдмреНрд░реИрдХреЗрдЯ рдХреЛ рдЙрд╕реА рд▓рд╛рдЗрди рдкрд░ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕реЗ
return
:
function getObject(){ return { } }
рдЧрддрд┐рд╢реАрд▓ рдЯрд╛рдЗрдкрд┐рдВрдЧ
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдЯрд╛рдЗрдкрд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдиреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЪрд░ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди, рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдПрдХ рд╣реА рдЪрд░ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
function log(value){ console.log(value); } log(1); log("text"); log({message : "text"});
рдПрдХ рдЪрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк
typeof()
рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
let n = 1; typeof(n); //number let s = "text"; typeof(s); //string let fn = function() {}; typeof(fn); //function
рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рдирд┐рд╖реНрдкрд╛рджрди рдореЙрдбрд▓
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рдирдЯрд╛рдЗрдо рд╕рд┐рдВрдЧрд▓-рдереНрд░реЗрдбреЗрдб рд╣реИред рдпрд╣, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рджреЛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрд╕рдВрднрд╡рддрд╛ рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрджрд┐ рдЖрдк рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдо рдпрд╣рд╛рдВ рдирд╣реАрдВ рдЫреВрддреЗ рд╣реИрдВ)ред рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдПрдХ рддрдерд╛рдХрдерд┐рдд рдЗрд╡реЗрдВрдЯ рдХреНрдпреВ рд╣реИ, рдЬреЛ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдирддреАрдЬрддрди, рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рдЬреЗрдПрд╕ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЖрдкрд╕реА рд╕рдВрд╕рд╛рдзрди рддрд╛рд▓реЗ рдХреА рд╕рдорд╕реНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рд▓реЙрдХ рддрдВрддреНрд░ рдХреА рдпрд╣рд╛рдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдИрд╡реЗрдВрдЯ рдХрддрд╛рд░ рдореЗрдВ рдЧрд┐рд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рдЬрд▓реНрджреА рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рдореБрдЦреНрдп рдереНрд░реЗрдб рдореЗрдВ, рднрд╛рд░реА рдХрд╛рдо рдХреЗ рд╕рд╛рде рдУрд╡рд░рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреЗрдЬ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрдЧрд╛ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрд╕ рдкреГрд╖реНрда рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░реЗрдЧрд╛ред
рдЕрдкрд╡рд╛рдж рд╕рдВрднрд╛рд▓рдирд╛
рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рддрдВрддреНрд░ рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХреЗ рддрдВрддреНрд░ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдХреЛрдб рдЬреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ
try/catch
рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреЛрдб рд╣реА
try
рдмреНрд▓реЙрдХ рдореЗрдВ рд╣реИ, рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ
catch
рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рдХрднреА-рдХрднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдЖрдкрд╛рддрдХрд╛рд▓реАрди рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЬреЗрдПрд╕ рдиреЗ ECMAScript 3 рдорд╛рдирдХ рдХреЛ рдЕрдкрдирд╛рдиреЗ рддрдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдирд╣реАрдВ рдлреЗрдВрдХрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ, "рдЬрдореЗ рд╣реБрдП" рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдХ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рдлреЗрдВрдХрд╛ рдЬрд╛рдПрдЧрд╛ред
let obj = Object.freeze({}); obj.message = "text";
"рдореВрдХ" рдЬреЗрдПрд╕ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ; рдЖрдк
"use strict";
рдирд┐рд░реНрдорд╛рдг рдХрд╛
"use strict";
рдХрд░рдХреЗ рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
"use strict";
ред
рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдкреНрд░рдгрд╛рд▓реА
рдирд┐рд░реНрдорд╛рддрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдРрд╕реЗ JS рддрдВрддреНрд░реЛрдВ рдХрд╛ рдЖрдзрд╛рд░,
Object.create()
рдХрдорд╛рдВрдб,
class
рдХреАрд╡рд░реНрдб, рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
let service = { doSomething : function() {} } let specializedService = Object.create(service); console.log(specializedService.__proto__ === service);
рдпрд╣рд╛рдВ, рдПрдХ
specializedService
service
рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕рдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдПрдХ
service
рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ рдерд╛,
Object.create()
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐
doSomething()
рд╡рд┐рдзрд┐ рдХреЛ
specializedService
рдСрдмреНрдЬреЗрдХреНрдЯ рддрдХ
doSomething()
рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐
specializedService
service
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА
__proto__
рд╕рдВрдкрддреНрддрд┐ рдПрдХ
service
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИред
рдЕрдм
class
рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рдорд╛рди рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ:
class Service { doSomething(){} } class SpecializedService extends Service { } let specializedService = new SpecializedService(); console.log(specializedService.__proto__ === SpecializedService.prototype);
Service
рд╡рд░реНрдЧ рдореЗрдВ рдШреЛрд╖рд┐рдд рддрд░реАрдХреЗ
Service.prototype
рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рдПрдВрдЧреЗред
Service
рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╕рдорд╛рди рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк (
Service.prototype
) рд╣реЛрдЧрд╛ред рд╕рднреА рдЙрджрд╛рд╣рд░рдг
Service.prototype
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдХреЙрд▓ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХрд░реЗрдВрдЧреЗред рдирддреАрдЬрддрди, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐
Service.prototype
рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рд╣реА рд╡рд┐рдзрд┐рдпрд╛рдВ рдШреЛрд╖рд┐рдд рдХреА рдЧрдИ рд╣реИрдВ
Service.prototype
рдХреЗ рдмрд╛рдж, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ рдХрдХреНрд╖рд╛ рдХреЗ рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ "рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ" рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Chain рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдЪреЗрди
рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ "рд╡рд╛рд░рд┐рд╕" рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рдХрд╛ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рддрд░реАрдХреЗ рдЙрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдРрд╕реА рд╕рдВрдкрддреНрддрд┐ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╣реА рдирд╣реАрдВ рд╣реИ, рддреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЗрд╕реЗ рдЦреЛрдЬрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ред рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддрдм рддрдХ рдЬрд╛рд░реА рд░рд╣реЗрдЧреА рдЬрдм рддрдХ рдХрд┐ рд╕рдВрдкрддреНрддрд┐ рдирд╣реАрдВ рдорд┐рд▓ рдЬрд╛рддреА рд╣реИ, рдпрд╛ рдЬрдм рддрдХ рдЦреЛрдЬ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдЕрдВрдд рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рдЬрд╛рддреА рд╣реИред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рдВрд╕ рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВ; рднрд╛рд╖рд╛ рдХреНрд▓реЛрдЬрд░ рдореИрдХреЗрдирд┐рдЬреНрдо рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИред рдпрд╣ рдЬреЗрдПрд╕ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рддрдХрдиреАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рдЦреЛрд▓рддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдо рдЙрдЪреНрдЪ-рдХреНрд░рдо рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдХреНрд▓реЛрдЬрд░ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреИрд░реЗрдВрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрддреА рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреЗрд░реЗрдВрдЯ рдлрд╝рдВрдХреНрд╢рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рднреАред
рдПрдХ рдЙрдЪреНрдЪ-рдХреНрд░рдо рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рддрд░реНрдХ, рд░рд┐рдЯрд░реНрди рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рджреЛрдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗ рд╕рдХрддрд╛ рд╣реИред
рдЬреЗрдПрд╕ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрдИ рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдХреБрдЫ рд╕рд╛рдордЧреНрд░реА
рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреЗ рдХрд╛рд░реНрдпреЛрдВ ,
рд░рдЪрдирд╛ ,
рд╕рдЬреНрдЬрд╛рдХрд╛рд░ ,
рдХреНрд▓реЛрдЬрд░, рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╢реИрд▓реА рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП
рдХреЛрдб рдХреА рдкрдардиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИрдВред
рдкрд░рд┐рдгрд╛рдо
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╢рдХреНрддрд┐ рдЗрд╕рдХреА рд╕рд╛рджрдЧреА рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред рднрд╛рд╖рд╛ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рддрдВрддреНрд░ рдХреЛ рд╕рдордЭрдирд╛ рдЬреЗрдПрд╕рдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдЗрди рддрдВрддреНрд░реЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЙрдирдХреЗ рдкреЗрд╢реЗрд╡рд░ рд╡рд┐рдХрд╛рд╕ рдХреА рдиреАрдВрд╡ рд░рдЦрддрд╛ рд╣реИред
рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдХреНрдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ newbies рдХрд╛рд░рдг рд╣реИрдВ?
