
Habr├й
рдкрд╣рд▓реЗ рд╕реЗ
рд╣реА рд╡рд╛рд░реНрдо
рдЕрдк рдХрд░ рд░рд╣реЗ рдереЗ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ
рдХреА рдкреНрд░рддреАрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА
рд╡рд┐рд╕рдВрдЧрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдордЬрд╝реЗ рдХрд░ рд░рд╣реЗ рдереЗред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд▓рдВрдмреЗ рдирдП рд╕рд╛рд▓ рдХреА рдЫреБрдЯреНрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рдж рдЖрдкрдХреЗ рдорд╕реНрддрд┐рд╖реНрдХ рдХреЛ рдлреИрд▓рд╛рдиреЗ рдХрд╛ рдПрдХ рд╢рд╛рдирджрд╛рд░ рддрд░реАрдХрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк 10 рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВред
рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рддрд░реНрдХрд╕рдВрдЧрдд рдХреНрдпреЛрдВ рд╣реИ, рдЗрд╕рдХреЗ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рдЙрддреНрддрд░ рдФрд░ рдореЗрд░рд╛ рдЕрдкрдирд╛ рд╕рдВрд╕реНрдХрд░рдг, рдореИрдВ рд╕реНрдкреЙрдЗрд▓рд░ рдХреЗ рдиреАрдЪреЗ рдЫрд┐рдкрд╛рдКрдВрдЧрд╛ред рддреБрд░рдВрдд рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░реЗрдВ рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдЕрдЯрд▓ рд╕рддреНрдп рдХрд╛ рдвреЛрдВрдЧ рди рдХрд░реВрдВ рдФрд░ рдореБрдЭреЗ рдЙрди рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред
рдИрд╕реАрдПрдордПрд╕реНрдХреНрд░рд┐рдкреНрдЯ 5 рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдХрд╛ рдЙрддреНрдХреГрд╖реНрдЯ
рд░реВрд╕реА рдЕрдиреБрд╡рд╛рдж рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП
рдЗрд▓рд┐рдпрд╛рдХрд╛рди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж рдЖрдкрдХреЛ рдЗрд╕реЗ
рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ!
1. рддреЛ рдпрд╛рдж рд░рдЦреЗрдВ, рдмрдЪреНрдЪреЛрдВ, рд╣рдо рд╣рдореЗрд╢рд╛ рдирдВрдмрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ!
рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд░рд▓ рд▓реЗрдХрд┐рди рдордЬреЗрджрд╛рд░ рдЙрджрд╛рд╣рд░рдгред рдРрд╕реЗ parseInt рдХреЙрд▓ рдХреЛ рдХреНрдпрд╛ рд▓реМрдЯрд╛рдПрдЧрд╛?
parseInt('fuck'); parseInt('fuck', 16);
рдирд┐рд░реНрдгрдп parseInt('fuck');
рдкрд╛рд░реНрд╕рдЗрдВрдЯ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдпрд╣ рджреВрд╕рд░реЗ рддрд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЪрд░рд┐рддреНрд░ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЪрд░рд┐рддреНрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдпрд╣ рдПрдХ рдЕрдорд╛рдиреНрдп рдЪрд░рд┐рддреНрд░ рдкрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рджрд╢рдорд▓рд╡ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд╡реАрдирддрдо рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдирд╣реАрдВ, рдпрджрд┐ рдкреНрд░реЗрд╖рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ 0 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдСрдХреНрдЯрд▓ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рджрд╢рдорд▓рд╡ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ, рдкреНрд░рддреАрдХ 'f' рдЕрдорд╛рдиреНрдп рд╣реИ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдмрд┐рдирд╛ рдПрдХ рдЕрдВрдХ рдкрд╛рдП рдЕрдкрдирд╛ рдХрд╛рдо рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ, рд╡рд░реНрдг 'f' рд╡реИрдз рд╣реИ рдФрд░ рджрд╢рдорд▓рд╡ рд╕рдВрдЦреНрдпрд╛ 15 рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рд╡рд░реНрдг 'u' рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдЕрдкрдирд╛ рдХрд╛рд░реНрдп рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
2. рдХреНрдпрд╛ рдХреЛрдИ рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ?
рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рддрд░рд╣ рдХреНрдпрд╛ рд╣реИ?
"Why am I a " + typeof + "";
рдирд┐рд░реНрдгрдп тАЬWhy am I a numberтАЭ
рдЯрд╛рдЗрдк рдСрдкрд░реЗрдЯрд░ рдкрд░ + рдСрдкрд░реЗрдЯрд░ рдкреВрд░реНрд╡рддрд╛ рд▓реЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдирд┐рдореНрди рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ:
тАЬWhy am I a тАЭ + (typeof (+ тАЬтАЭ)).
рдПрдХрд░реА "+" рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЬрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╕реЗ "рдЯрд╛рдЗрдкреЛрдлрд╝" рд╕рдВрдЦреНрдпрд╛ рд╣реЛрддреА рд╣реИред
3. рдХреМрди рдЕрдзрд┐рдХ рд╣реИ?
рдЦреИрд░, рдХреМрди рдЕрдзрд┐рдХ рд╣реИ?
[1, 2, 4] < [1, 2, 5] [1, 2, 'd'] < [1, 2, 5] [1, 2, ['d', 5]] < [1, 2, [20, 5]] [1, 2, 5] == [1, 2, 5] [1, 2, 5] <= [1, 2, 5] [1, 2, 5] >= [1, 2, 5]
рдирд┐рд░реНрдгрдп [1, 2, 4] < [1, 2, 5]
рдИрд╕реАрдПрдордПрд╕реНрдХреНрд░рд┐рдкреНрдЯ 5 рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рддреБрд▓рдирд╛рддреНрдордХ рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рддрд░реНрдХ рдЬреЛ рдХрд┐ рдЖрджрд┐рдо рдирд╣реАрдВ рд╣реИрдВ рдЙрдиреНрд╣реЗрдВ рдЖрджрд┐рдо рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ 11.8.5 "рд╕рд╛рд░ рд╕рдВрдмрдВрдз рддреБрд▓рдирд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо" рдЦрдВрдб)ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдорд╛рди рдХреЛ рдПрдХ рд╡рд┐рдзрд┐ рдореЗрдВ рдмрджрд▓рдХрд░ рд╡реИрд▓реНрдпреВрдСрдл рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдЬрдм рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИ (рдореИрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреА рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣рд╛рдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдФрд░ рдЬрдм рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╢рдмреНрдж A рд╢рдмреНрдж B рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рд╣рдо рд▓рдВрдмрд╛рдИ рдХрд╛ рдорддрд▓рдм рд╣реИ рд▓реЗрдХрд┐рди рдПрдХ рд╕рд╣рдХрд░реНрдореА рдХреЗ рд╕рд╛рде рд╣реБрдИ рдмрд╛рддрдЪреАрдд рд╕реЗ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рд╕рдЪ рдирд╣реАрдВ рд╣реИред рдЬрдм рд╣рдо рджреЛ рд╢рдмреНрджреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЙрдирд╕реЗ рдЬреБрдбрд╝реА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкрд▓рдЯрдХрд░ рдЙрдирдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдХреЗрд╡рд▓ рдЕрдЧрд░ рдХреЛрдИ рдЪрд┐рддреНрд░ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рд╣рдо рд╢рдмреНрджреЛрдВ рдХреА рддреБрд▓рдирд╛ рдЗрдореЗрдЬ рд▓реЗрдмрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ)ред рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, valueOf рдкрджреНрдзрддрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЙрдирдХреА рддреБрд▓рдирд╛ рддрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИ:
"1,2,4" < "1,2,5"
рд▓реЗрдХрд┐рди рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХреЗрд╡рд▓ рддреБрд▓рдирд╛рддреНрдордХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╣реИред "==" рдСрдкрд░реЗрдЯрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХреЗрд╡рд▓ рддрднреА рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрдм рдХреЛрдИ рддрд░реНрдХ рдЖрджрд┐рдо рд╣реЛ, рдФрд░ рдЕрдиреНрдп рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ "==" рдСрдкрд░реЗрдЯрд░ рдХреЗрд╡рд▓ рддрднреА рд╕рддреНрдп рд╣реЛрддрд╛ рд╣реИ, рдЬрдм рджреЛрдиреЛрдВ рддрд░реНрдХ рдПрдХ рд╣реА рд╡рд╕реНрддреБ (рдЦрдВрдб 11.3.3) рдХрд╛ рд╕рд╛рд░ рд╕рдорд╛рдирддрд╛ рддреБрд▓рдирд╛рддреНрдордХ рдПрд▓реНрдЧреЛрд░рд┐рдердо рджреЗрдЦреЗрдВред ), рдЬреЛ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИред
рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рддреБрд▓рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рд┐рдЯрд░реНрди рд░рд┐рдЯрд░реНрдирд┐рдВрдЧ [рдСрдмреНрдЬреЗрдХреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ]ред
4. рдЕрдзрд┐рдХ рдХреМрди рд╣реИ? -2
рдкрд┐рдЫрд▓реА рдкрд╣реЗрд▓реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╛ рдЗрд╕рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ред
var obj1 = { test: 'test', toString: function(){ return 10; }, valueOf: function(){ return 100; } } var obj2 = { test: 'test', toString: function(){ return 100; }, valueOf: function(){ return 10; } } obj1 ? obj2
рдирд┐рд░реНрдгрдп obj1 > obj2
рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдЫрд▓реЗ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрдм рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдкрд╣рд▓реЗ рдирдВрдмрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЧреИрд░-рдЖрджрд┐рдо рддрд░реНрдХ рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред valueOf рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред 100> 10ред
5. рдкрд╛рдЧрд▓рдкрди рдХреА рдмреАрдорд╛рд░рд┐рдпрд╛рдБ
рдХреНрдпрд╛ рд▓реМрдЯреЗрдЧрд╛?
parseFloat('Infinity'); Number('Infinity'); parseInt('Infinity');
рдирд┐рд░реНрдгрдп parseFloat('Infinity');
рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЕрдирдВрдд рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдпрд╣ рдЕрдзрд┐рдХрддрдо рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрддрд╛ рд╣реИ: 1.7976931348623157E + 308ред рдпрд╛рдиреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрдиреНрдлрд┐рдирд┐рдЯреА рдПрдХ рднрд┐рдиреНрдирд╛рддреНрдордХ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдерд┐рд░ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ parseFloat рдФрд░ рд╕рдВрдЦреНрдпрд╛ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди parseInt рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
6. рдкреНрд▓рд╕рд╕ рдХреЗ рд╕рд╛рде рдЦреЗрд▓
рдкрд┐рдЫрд▓реЗ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдзреНрдпрд╛рди рд╕реЗ рдкрдврд╝рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХрд╣рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХрд┐ рд╡реЗ рдЗрд╕ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░реЗрдВрдЧреЗ:
"foo" + + "bar"
рдирд┐рд░реНрдгрдп ("foo" + + "bar") === "fooNaN"
+ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ:
тАЬfooтАЭ + (+ тАЬbarтАЭ)
рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рджреЗрдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдпрд╣ NaN рд▓реМрдЯрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдПрдХ рдирдВрдмрд░ рдкрд░ рдирд╣реАрдВ рдбрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рд╕реЗ:
"foo" + NaN === "fooNaN".
7. рд╕рдмрд╕реЗ рдЫреЛрдЯреА рд╕рдВрдЦреНрдпрд╛
рдХреМрди рдЕрдзрд┐рдХ рд╣реИ?
Number.MIN_VALUE ? 0
рдирд┐рд░реНрдгрдп Number.MIN_VALUE > 0
MIN_VALUE рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣ 0 рдХреА рдирд┐рдХрдЯрддрдо рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд▓рдЧрднрдЧ 5e-324 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдирд┐рд░рдкреЗрдХреНрд╖ рдореВрд▓реНрдп рдореЗрдВ рдЫреЛрдЯреЗ рд╕рднреА рдирдВрдмрд░ 0. рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдиреНрдпреВрдирддрдо, рд╢рд╛рдпрдж, рддрд╛рд░реНрдХрд┐рдХ, рдХреНрдпреЛрдВрдХрд┐ рдХрд╣рддреЗ рд╣реИрдВ рдЕрдзрд┐рдХрддрдо рдирдХрд╛рд░рд╛рддреНрдордХ рдХреЛ "рдЕрдзрд┐рдХрддрдо рдирдХрд╛рд░рд╛рддреНрдордХ" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рднреНрд░рдо рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИред
8. рд▓рдЧреНрдЬрд░реА рдЯреИрдХреНрд╕
рд╣рдо рд╕реНрдХреНрд░реАрди рдкрд░ рдХреНрдпрд╛ рджреЗрдЦреЗрдВрдЧреЗ?
alert(111111111111111111111);
рдирд┐рд░реНрдгрдп 111111111111111111000
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ:
111111111111111111111 = 1.11111111111111111111e20.
рд▓реЗрдХрд┐рди рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП 1.1111111111111111111111 рд╕рдЯреАрдХрддрд╛ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП
(1.11111111111111111111e20).toString() == 111111111111111110000
9. "рдмреВрд▓рд┐рдпрди рдЕрдВрдХрдЧрдгрд┐рдд"
(true + 1) === 2;тАЛ (true + true) === 2; true === 2; true === 1;
рдирд┐рд░реНрдгрдп (true + 1) === 2;тАЛ тАЛ
рдбрдмрд▓ рдСрдкрд░реЗрдЯрд░ "+" рдпрд╛ рддреЛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЬрдм рд╕рддреНрдп рдХреЛ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ 1 рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдСрдкрд░реЗрдЯрд░ "===", "+" рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЯрд╛рдЗрдк рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдЪ рд╣реИ рдХрдбрд╝рд╛рдИ рд╕реЗ рдПрдХ рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИред
10. рд╢реВрдиреНрдпрддрд╛ рдХрд╛ рдЦрдВрдбрди
[] == ![]
рдирд┐рд░реНрдгрдп [] == ![]
рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рд╕реЗ == рдСрдкрд░реЗрдЯрд░ рдореЗрдВ рдЯрд╛рдЗрдк рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХреЗ рдирд┐рдпрдо рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджреНрдзрд░рдг:
1. рдпрджрд┐ рдЯрд╛рдЗрдк (x) рдирдВрдмрд░ рд╣реИ рдФрд░ рдЯрд╛рдЗрдк (y) рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ, рддреЛ рддреБрд▓рдирд╛ x == ToNumber (y) рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рдПрдВред
2. рдпрджрд┐ рдЯрд╛рдЗрдк (x) рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдФрд░ рдЯрд╛рдЗрдк (y) рдирдВрдмрд░ рд╣реИ, рддреЛ рддреБрд▓рдирд╛ ToNumber (x) == y рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╡рд╛рдкрд╕ рдХрд░реЗрдВред
3. рдпрджрд┐ рдЯрд╛рдЗрдк (x) рдмреВрд▓рд┐рдпрди рд╣реИ, рддреЛ рддреБрд▓рдирд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╡рд╛рдкрд╕ рдХрд░реЗрдВ ToNumber (x) == yред
4. рдпрджрд┐ рдЯрд╛рдЗрдк (y) рдмреВрд▓рд┐рдпрди рд╣реИ, рддреЛ рддреБрд▓рдирд╛ x == ToNumber (y) рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рдПрдВред
5. рдпрджрд┐ рдЯрд╛рдЗрдк (x) рдпрд╛ рддреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рдФрд░ рдЯрд╛рдЗрдк (y) рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ, рддреЛ рддреБрд▓рдирд╛ x == ToPrimitive (y) рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рдПрдВред
6. рдпрджрд┐ рдЯрд╛рдЗрдк (x) рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ рдФрд░ рдЯрд╛рдЗрдк (y) рдпрд╛ рддреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рддреЛ рддреБрд▓рдирд╛рддреНрдордХ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд▓реМрдЯрд╛рдПрдВ (x) == yред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рд╕рдорд╛рдирддрд╛ рдХреЗ рд╕рд╣реА рдкрдХреНрд╖ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:
[] == false
рдХреНрдпреЛрдВрдХрд┐ рд╡рд╕реНрддреБ рд╣рдореЗрд╢рд╛ рд╕рддреНрдп рдХреЗ рд▓рд┐рдП рдбрд╛рд▓реА рдЬрд╛рддреА рд╣реИред
рдЕрдм рдирд┐рдпрдо 4 рд╕реЗ:
[] == 0
рдирд┐рдпрдо 6 рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдФрд░ 3 рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЬреНрдЮрд╛рди рдХреЗ рд╕рд╛рде:
"" == 0
рдлрд┐рд░, рдирд┐рдпрдо 2 рд╕реЗ:
0 == 0
рджреЗрдЦрд╛!
рдирд┐рд╖реНрдХрд░реНрд╖
рдЖрдкрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдХрд┐рддрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛? рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрди рдЫреЛрдЯреЗ рдЕрднреНрдпрд╛рд╕реЛрдВ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВрдЧреЗред рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рднрд╛рд╡рдирд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЕрд╡рд╕рд░ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рд░реЗрдХ рд╕реНрдерд╛рди рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд░реЗрдВред
рдпрджрд┐ рдЖрдк рдЕрдиреНрдп рд░реЛрдЪрдХ рдЙрджрд╛рд╣рд░рдг рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рд╕реНрдкреЙрдЗрд▓рд░ рдХреЗ рдиреАрдЪреЗ рдЙрддреНрддрд░ рдФрд░ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдЫрд┐рдкрд╛рддреЗ рд╣реБрдП рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рдореЗрд░реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╡рд┐рд░реЛрдз рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдЗрд╕рд▓рд┐рдП рдкреБрд░рд╛рдиреЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рд╕реЗ рдкрд╣реЗрд▓реА рдХреЛ рдмреЛрдирд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдП:
рдФрд░ рдХреНрдпрд╛ рд╣реИ?
Math.min() ? Math.max()
рдирд┐рд░реНрдгрдп Math.min() > Math.max()
рдореИрдердореИрдХреНрд╕ рдкрджреНрдзрддрд┐ рдХреА
рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░
, рддрд░реНрдХреЛрдВ рдХреЗ рдЕрднрд╛рд╡ рдореЗрдВ, -рдЗрдирдлрд┐рдирд┐рдЯреА рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреА рд╣реИред рдЗрд╕реА рддрд░рд╣, рдорд┐рдирдЯ рд╕рд┐рд░реНрдл рдЗрдиреНрдлрд┐рдирд┐рдЯреА рджреЗрддрд╛ рд╣реИред
рдФрд░ рд╣рд╛рдБ, рдореБрдЦреНрдп рдмрд╛рдд: рдпреБрджреНрдз рдХреЛрдб рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ! рдЙрди рдкрд░ рджрдпрд╛ рдХрд░реЛ рдЬреЛ рдЗрд╕реЗ рдкрдврд╝реЗрдВрдЧреЗред