V8 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдХрд╣рд╛рдиреА, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯред рднрд╛рдЧ 1

рд╕рд╛рдордЧреНрд░реА, рдЬрд┐рд╕рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХрд╛ рдкрд╣рд▓рд╛ рднрд╛рдЧ рдЖрдЬ рд╣рдо рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХреИрд╕реЗ V8 рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди рд╕реНрдореГрддрд┐ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди JS рдорд╛рдиреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд╕рд░реНрд╡реЛрддреНрддрдо рддрд░реАрдХреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рддрдерд╛рдХрдерд┐рдд рд░реВрдкреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ V8 рдХреЗ рдЖрдВрддрд░рд┐рдХ рддрдВрддреНрд░ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡рд╕реНрддреБрдПрдВ (рдЖрдХрд╛рд░)ред рдпрд╣ рд╕рдм рд╣рдореЗрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдореБрджреНрджреЗ рдХреЗ рд╕рд╛рд░ рдХреЛ рд╕реБрд▓рдЭрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред



рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░


рдкреНрд░рддреНрдпреЗрдХ JavaScript рдорд╛рди рдореЗрдВ рдЖрда рдореМрдЬреВрджрд╛ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: Number , String , Symbol , BigInt , Boolean , Undefined , Null рдФрд░ Object ред


рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░

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

 typeof 42; // 'number' typeof 'foo'; // 'string' typeof Symbol('bar'); // 'symbol' typeof 42n; // 'bigint' typeof true; // 'boolean' typeof undefined; // 'undefined' typeof null; // 'object' -   ,     typeof { x: 42 }; // 'object' 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, typeof null рдХрдорд╛рдВрдб 'object' , рди рдХрд┐ 'null' , рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ null рдХрд╛ рдЕрдкрдирд╛ рдкреНрд░рдХрд╛рд░ рд╣реИ - Null ред рдЗрд╕ typeof рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдХрд╛рд░рдг рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рддрдереНрдп рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╕рднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕реЗрдЯ рдХреЛ рджреЛ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  • рдСрдмреНрдЬреЗрдХреНрдЯ (рдпрд╛рдиреА, Object рдЯрд╛рдЗрдк рдХрд░реЗрдВ)ред
  • рдЖрджрд┐рдо рдореВрд▓реНрдп (рдЕрд░реНрдерд╛рдд, рдХреЛрдИ рднреА рдЧреИрд░-рд╡рд┐рд╢реЗрд╖рдг рдореВрд▓реНрдп)ред

рдЗрд╕ рдЬреНрдЮрд╛рди рдХреЗ рдкреНрд░рдХрд╛рд╢ рдореЗрдВ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ null рдЕрд░реНрде рд╣реИ "рдХреЛрдИ рд╡рд╕реНрддреБ рдирд╣реАрдВ", рдЬрдмрдХрд┐ undefined рдЕрд░реНрде рд╣реИ "рдХреЛрдИ рдореВрд▓реНрдп рдирд╣реАрдВ"ред


рдЖрджрд┐рдо рдореВрд▓реНрдп, рд╡рд╕реНрддреБрдПрдВ, рдЕрд╢рдХреНрдд рдФрд░ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд

рдЬрд╛рд╡рд╛ рдХреА рднрд╛рд╡рдирд╛ рдореЗрдВ рдЗрди рдкреНрд░рддрд┐рдмрд┐рдВрдмреЛрдВ рдХреЗ рдмрд╛рдж, рдмреНрд░реЗрдВрдбрди рдИрдЪ рдиреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд┐рдпрд╛ рддрд╛рдХрд┐ typeof рдСрдкрд░реЗрдЯрд░ рдЙрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП 'object' рд▓реМрдЯрд╛рдП рдЬреЛ рдкрд┐рдЫрд▓реЗ рдЖрдВрдХрдбрд╝реЗ рдореЗрдВ рджрд╛рдИрдВ рдУрд░ рд╕реНрдерд┐рдд рд╣реИрдВред рд╕рднреА рд╡рд╕реНрддреБ рдореВрд▓реНрдп рдФрд░ null рдпрд╣рд╛рдБ рдорд┐рд▓рддреЗ рд╣реИрдВред рдЗрд╕реАрд▓рд┐рдП рдПрдХреНрд╕рдкреНрд░реЗрд╢рди typeof null === 'object' рд╕рд╣реА рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐ рд▓реИрдВрдЧреНрд╡реЗрдЬ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдЯрд╛рдЗрдк Null рд╣реИред


рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЯрд╛рдЗрдкреЛ v === 'рдСрдмреНрдЬреЗрдХреНрдЯ' рд╕рддреНрдп рд╣реИ

рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡


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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ 42 рдХрд╛ рдорд╛рди рдЯрд╛рдЗрдк number ред

 typeof 42; // 'number' 

рдореЗрдореЛрд░реА рдореЗрдВ 42 рдЬреИрд╕реЗ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ:
рд╡рд┐рдЪрд╛рд░
рдмрд┐рдЯреНрд╕
8 рдмрд┐рдЯреНрд╕, рджреЛ рдХреЗ рдЕрд▓рд╛рд╡рд╛
0010 1010
32 рдмрд┐рдЯ, рджреЛ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЗ рд╕рд╛рде
0000 0000 0000 0000 0000 0010 1010
рдкреИрдХ рдмрд╛рдЗрдирд░реА-рдХреЛрдбреЗрдб рджрд╢рдорд▓рд╡ (BCD)
0100 0010 рд╣реИ
32 рдмрд┐рдЯреНрд╕, IEEE-754 рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рдирдВрдмрд░
0 100 0010 0010 1000 0000 0000 0000 0000
64 рдмрд┐рдЯреНрд╕, IEEE-754 рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рдирдВрдмрд░
0100 0000 0100 0101 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

ECMAScript рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╕рдВрдЦреНрдпрд╛рдПрдВ 64-рдмрд┐рдЯ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рд╡реИрд▓реНрдпреВрдЬрд╝ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдбрдмрд▓-рдкреНрд░рд┐рд╕рд┐рдЬрди рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдирдВрдмрд░ (рдлрд╝реНрд▓реЛрдЯ 64) рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди рд╣рдореЗрд╢рд╛ рдлреНрд▓реЛрдЯ64 рджреГрд╢реНрдп рдореЗрдВ рдирдВрдмрд░ рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдмрд╣реБрдд, рдмрд╣реБрдд рдЕрдХреНрд╖рдо рд╣реЛрдЧрд╛! рдЗрдВрдЬрди рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдЕрдиреНрдп рдЖрдВрддрд░рд┐рдХ рдЕрднреНрдпрд╛рд╡реЗрджрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЬрдм рддрдХ рдХрд┐ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдлреНрд▓реЛрдЯ64 рдирдВрдмрд░ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреЗрдПрд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдВрдЦреНрдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рд╡реИрдз ECMAScript рд╕рд░рдгреА рдЗрдВрдбреЗрдХреНрд╕ рд╣реИрдВ ред рд╡рд╣ рд╣реИ - 0 рд╕реЗ 2 32 -2 рдХреА рд╕реАрдорд╛ рдореЗрдВ рдкреВрд░реНрдгрд╛рдВрдХред

 array[0]; //      . array[42]; array[2**32-2]; //      . 

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

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

 for (let i = 0; i < 1000; ++i) {  //  } for (let i = 0.1; i < 1000.1; ++i) {  //  } 

рдЧрдгрд┐рддреАрдп рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрдгрдирд╛ рдкрд░ рднреА рдпрд╣реА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред

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

 const remainder = value % divisor; //  -  `value`  `divisor`   , //    . 

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

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

 //  Float64   53-  . //         . 2**53 === 2**53+1; // true // Float64   ,   -1 * 0   -0,  //           . -1*0 === -0; // true // Float64   Infinity,   , //     . 1/0 === Infinity; // true -1/0 === -Infinity; // true // Float64    NaN. 0/0 === NaN; 

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

рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ 31-рдмрд┐рдЯ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреА рд╕реАрдорд╛ рдХреЗ рднреАрддрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЫреЛрдЯреЗ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, V8 рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ Smi рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╣ рд╕рдм рдХреБрдЫ рдЬреЛ рдПрдХ Smi рдореВрд▓реНрдп рдирд╣реАрдВ рд╣реИ, рдПрдХ HeapObject рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ HeapObject рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╕реНрдореГрддрд┐ рдореЗрдВ рдХреБрдЫ рдЗрдХрд╛рдИ рдХрд╛ рдкрддрд╛ рд╣реИред рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдЬреЛ HeapObject рд╢реНрд░реЗрдгреА рдореЗрдВ рдирд╣реАрдВ рдЖрддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХрд╛ HeapObject - рддрдерд╛рдХрдерд┐рдд HeapNumber ред

 -Infinity // HeapNumber -(2**30)-1 // HeapNumber  -(2**30) // Smi       -42 // Smi        -0 // HeapNumber         0 // Smi       4.2 // HeapNumber        42 // Smi   2**30-1 // Smi     2**30 // HeapNumber  Infinity // HeapNumber       NaN // HeapNumber 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ JS рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ Smi рд░реВрдк рдореЗрдВ HeapNumber , рдФрд░ рдХреБрдЫ HeapNumber рд░реВрдк рдореЗрдВред V8 рдЗрдВрдЬрди рдХреЛ Smi рдирдВрдмрд░ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреЗрдПрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдЫреЛрдЯреЗ рдкреВрд░реНрдгрд╛рдВрдХ рдмрд╣реБрдд рдЖрдо рд╣реИрдВред Smi рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдкрдХреЛ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рд╕рд╛рде рддреНрд╡рд░рд┐рдд рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдПрд╕рдПрдордЖрдИ, рд╣реАрдкрдиреНрдирдВрдмрд░ рдФрд░ рдореНрдпреВрдЯреЗрдмрд▓рд╣реЗрдирдирдВрдмрд░ рдХреА рддреБрд▓рдирд╛


рдЖрдЗрдП рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЗрди рддрдВрддреНрд░реЛрдВ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдХреИрд╕реА рджрд┐рдЦрддреА рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд╕реНрддреБ рд╣реИ:

 const o = {  x: 42, // Smi  y: 4.2, // HeapNumber }; 

рдСрдмреНрдЬреЗрдХреНрдЯ x рдХреА рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдорд╛рди 42 Smi рд░реВрдк рдореЗрдВ рдПрдиреНрдХреЛрдбреЗрдб рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЗрд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдВрджрд░ рд╣реА рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджреВрд╕рд░реА рддрд░рдл рдореВрд▓реНрдп 4.2 рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдЕрд▓рдЧ рдЗрдХрд╛рдИ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЗрд╕ рдЗрдХрд╛рдИ рдХрд╛ рд▓рд┐рдВрдХ рд╣реЛрдЧрд╛ред


рд╡рд┐рднрд┐рдиреНрди рдореВрд▓реНрдпреЛрдВ рдХрд╛ рднрдВрдбрд╛рд░рдг

рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдо рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯреБрдХрдбрд╝реЗ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

 ox += 10; // ox   52 oy += 1; // oy   5.2 

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрд╕рдХреЗ рднрдВрдбрд╛рд░рдг рд╕реНрдерд╛рди рдкрд░ рд╕рдВрдкрддреНрддрд┐ x рдХрд╛ рдореВрд▓реНрдп рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ x рдХрд╛ рдирдпрд╛ рдорд╛рди 52 рд╣реИ, рдФрд░ рдпрд╣ рд╕рдВрдЦреНрдпрд╛ Smi рдХреА рд╕реАрдорд╛ рдореЗрдВ рдЖрддреА рд╣реИред


рдкреНрд░реЙрдкрд░реНрдЯреА x рдХрд╛ рдирдпрд╛ рдорд╛рди рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдкрд┐рдЫрд▓рд╛ рдорд╛рди рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, y , 5.2 рдХрд╛ рдирдпрд╛ рдорд╛рди, Smi рдХреА рд╢реНрд░реЗрдгреА рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, y - 4.2 рдХреЗ рдкрд┐рдЫрд▓реЗ рдореВрд▓реНрдп рд╕реЗ рднрд┐рдиреНрди рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, V8 рдХреЛ рдирдИ HeapNumber рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд HeapNumber рдФрд░ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред


рдирдИ рдЗрдХрд╛рдИ HeapNumber рдирдП y рдорд╛рди рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

HeapNumber рдЗрдХрд╛рдЗрдпрд╛рдВ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИрдВред рдпрд╣ рдЖрдкрдХреЛ рдХреБрдЫ рдЕрдиреБрдХреВрд▓рди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ x рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд╕рдВрдкрддреНрддрд┐ y x рдореВрд▓реНрдп рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:

 ox = oy; // ox   5.2 

рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдмрд╕ рдПрдХ рд╣реА HeapNumber рдпреВрдирд┐рдЯ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕рдорд╛рди рдореВрд▓реНрдп рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

HeapNuber рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреА рдкреНрд░рддрд┐рд░рдХреНрд╖рд╛ рдХрд╛ рдПрдХ рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ Smi рд░реЗрдВрдЬ рдХреЗ рдмрд╛рд╣рд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд▓рдЧрд╛рддрд╛рд░ рдЕрджреНрдпрддрди рдзреАрдорд╛ рд╣реИред рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 //   `HeapNumber`. const o = { x: 0.1 }; for (let i = 0; i < 5; ++i) {  //    `HeapNumber`.  ox += 1; } 

рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп, HeapNumber рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп 0.1 рд╣реИред рдЪрдХреНрд░ рдХреЗ рд╢рд░реАрд░ рдореЗрдВ, рдпрд╣ рдорд╛рди 1.1, 2.1, 3.1, 4.1 рдФрд░ рдЕрдВрдд рдореЗрдВ 5.1 рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдирддреАрдЬрддрди, рдЗрд╕ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, HeapNumber 6 рдЙрджрд╛рд╣рд░рдг HeapNumber , рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкрд╛рдВрдЪ рд▓реВрдк рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдЕрдзреАрди рд╣реЛрдВрдЧреЗред


HeapNumber рдЗрдХрд╛рдЗрдпрд╛рдБ

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, V8 рдореЗрдВ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рд╣реИ, рдЬреЛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рд╣реИ, рдЬрд┐рдирдХреЗ рдорд╛рди рдЙрд╕реА рд╢реНрд░реЗрдгреА рдореЗрдВ Smi рд╢реНрд░реЗрдгреА рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВред рдпрджрд┐ рдХреЛрдИ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдлрд╝реАрд▓реНрдб рдЙрди рдорд╛рдиреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рд▓рд┐рдП Smi рдирд┐рдХрд╛рдп рд╕рдВрдЧреНрд░рд╣рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рддреЛ V8, рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, рдЗрд╕ рдлрд╝реАрд▓реНрдб рдХреЛ Double рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ MutableHeapNumber рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдлрд╝реНрд▓реЛрдЯ64 рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдП рдЧрдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдп рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред


MutableHeapNumber рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдлрд╝реАрд▓реНрдб рдорд╛рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, V8 рдХреЛ рдирдИ HeapNumber рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдмрд╕ рдПрдХ рдореМрдЬреВрджрд╛ MutableHeapNumber рдЗрдХрд╛рдИ рдореЗрдВ рдирдпрд╛ рдорд╛рди рд▓рд┐рдЦреЗрдВред


MutableHeapNumber рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдорд╛рди рд▓рд┐рдЦрдирд╛

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


MutableHeapNumber рдХрд╛ рдиреБрдХрд╕рд╛рди

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

рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдирдВрдмрд░реЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, V8 рдЕрдкрдиреЗ рдЖрдВрддрд░рд┐рдХ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдкрд░реЛрдХреНрдд рдкреИрдХрд┐рдВрдЧ рдСрдкрд░реЗрд╢рди рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЫреЛрдЯреЗ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, MutableHeapNumber рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдордп рдХреА рдмрд░реНрдмрд╛рджреА рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдРрд╕реА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Smi рдПрдХ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рддрд░реАрдХрд╛ рд╣реИред

 const object = { x: 1 }; // ""  `x`    object.x += 1; //   `x`   

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


рдЙрди рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ рдореВрд▓реНрдп рдПрд╕рдЖрдИрдЖрдИ рдХреА рд╕реАрдорд╛ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ

рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП ...

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЬреЗрдПрд╕ рдЗрдВрдЬрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдореБрджреНрджреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИ?

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


All Articles