рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдиреБрдХрд╕рд╛рди

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



рдкреНрд░рдХрд╛рд░


рдЬреИрд╕рд╛ рдХрд┐ ECMAScript рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ , рдХреБрд▓ 6 рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:
  1. рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд
  2. рдЕрд╢рдХреНрдд
  3. рдмреВрд▓рд┐рдпрди
  4. рддрд╛рд░
  5. рд╕рдВрдЦреНрдпрд╛
  6. рд╡рд╕реНрддреБ

рд╕рднреА рдореВрд▓реНрдп рдЙрдирдХреЗ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдЬреЗрдПрд╕ рдХрд╛ рдПрдХ рдЯрд╛рдЗрдкреЛрдлрд╝ рдСрдкрд░реЗрдЯрд░ рд╣реИ, рдЬреЛ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реВрдЪреАрдмрджреНрдз рдореЗрдВ рд╕реЗ рдПрдХред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдирд┐рдХрд▓рд╛:

typeof 5; //"number", ,    typeof "hello"; //"string" typeof true; //"boolean" typeof undefined; //"undefined" typeof {}; //"object".  5  5 typeof null; //"object". WTF? typeof function(){}; //"function".      function? 

рд╕рдорд╕реНрдпрд╛: рдирд▓ рдХрд╛ рдкреНрд░рдХрд╛рд░ рдЕрд╢рдХреНрдд рд╣реЛрдиреЗ рдкрд░ рднреА, рдСрдкрд░реЗрдЯрд░ 'рдСрдмреНрдЬреЗрдХреНрдЯ' рд▓реМрдЯрд╛рддрд╛ рд╣реИ; рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкреНрд░рдХрд╛рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ, рдСрдкрд░реЗрдЯрд░ 'рдлрд╝рдВрдХреНрд╢рди' рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХреЛрдИ рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реИред
рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг: рдЯрд╛рдЗрдкреЛрдлрд╝ рдПрдХ рдкреНрд░рдХрд╛рд░ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬреЛ рддрд░реНрдХ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирд╛рдо рдирд╣реАрдВ рд╣реИред
рдпреБрдХреНрддрд┐: рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рдУред рдЧрдВрднреАрд░рддрд╛ рд╕реЗ, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЬреЗрдПрд╕ рдХреЗ 6 рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдЬрд╛рдирдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдХреЛрдИ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдФрд░ рдЯрд╛рдЗрдкреЛ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ:
рддрд░реНрдХ рдкреНрд░рдХрд╛рд░рдкрд░рд┐рдгрд╛рдо
рдЕрдкрд░рд┐рднрд╛рд╖рд┐рддрдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд
рдЕрд╢рдХреНрддрд╡рд╕реНрддреБ
рдмреВрд▓рд┐рдпрдирдмреВрд▓рд┐рдпрди
рд╕рдВрдЦреНрдпрд╛рд╕рдВрдЦреНрдпрд╛
рддрд╛рд░рддрд╛рд░
рдСрдмреНрдЬреЗрдХреНрдЯ (рдирдП рдСрдкрд░реЗрдЯрд░ рдХреЗ рдкрд░рд┐рдгрд╛рдо, рдЗрдирд▓рд╛рдЗрди рдСрдмреНрдЬреЗрдХреНрдЯ ({рдХреБрдВрдЬреА: рдорд╛рди}))рд╡рд╕реНрддреБ
рд╡рд╕реНрддреБ (рдХрд╛рд░реНрдп)рд╕рдорд╛рд░реЛрд╣


рдореИрдЬрд┐рдХ рд╡реИрд▓реНрдпреВ: рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд, рдЕрд╢рдХреНрдд, NaN


рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:



рдореЗрд░реЗ рд╕рд┐рд░ рдореЗрдВ рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░рдЦрддрд╛ рд╣реВрдБ:

рдЗрди рдЕрд░реНрдереЛрдВ рдХреЗ рд╕рд╛рде, рдореИрдВрдиреЗ "рдЬрд╛рджреВ" рдХреА рдмрд╣реБрдд рдЦреЛрдЬ рдХреАред рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдЙрдирдХреЗ рд╕рд╛рде рдмреВрд▓рд┐рдпрди рдСрдкрд░реЗрд╢рди:
  !!undefined; //false !!NaN; //false !!null; //false // ,  3     boolean  false null == undefined; //true undefined === undefined; //true null === null; //true NaN == undefined; //false NaN == null; //false NaN === NaN; //false! NaN == NaN; //false! 

рд╕рдорд╕реНрдпрд╛: рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рд╣рдо NaN рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреБрд▓рдирд╛ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реЛрдЧрд╛ред
рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг: NaN рдХрдИ рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: 0/0, parseInt ('рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЗрд░реНрд░реЗрдбреНрдпреВрдмрд▓ рдЯреВ рдирдВрдмрд░'), Math.sqrt (-1) рдФрд░ рдпрд╣ рдЕрдЬреАрдм рд╣реЛрдЧрд╛ рдпрджрд┐ -1 рдХреА рдЬрдбрд╝ 0/0 рдереАред рдЗрд╕реАрд▓рд┐рдП NaN! == NaN
рдЯрд┐рдк: NaN рдХреЗ рд╕рд╛рде рдмреВрд▓рд┐рдпрди рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ isNaN рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред



  typeof a; //'undefined' a; //ReferenceError: a is not defined 

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



  var a; //  ,     ,   undefined console.log(undefined); //undefined console.log(a); // undefined a === undefined; //true undefined = 1; console.log(undefined); //1 a === undefined; //false 

рд╕рдорд╕реНрдпрд╛: рдХрд┐рд╕реА рднреА рд╕рдордп, рд╣рдо рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдорд╛рди рдХреЛ рдкрдврд╝ рдФрд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП, рдХреЛрдИ рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдЧрд▓рдд рд╣реЛрдЧрд╛ред
рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг: рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рди рдХреЗрд╡рд▓ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдореВрд▓реНрдп рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рднреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдЗрд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдпреБрдХреНрддрд┐: рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗ рд╕рд╛рде рдмрд╕ рдЪрд░ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рдмреБрд▓реЗрдЯрдкреНрд░реВрдл" рдХреЛрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП 3 рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред

  (function(window, undefined){ //..     ,   undefined  ┬л┬╗. }(this)); 


  typeof void(0) === 'undefined' // true 




рдЕрдм рдЕрд╢рдХреНрдд рдХреЗ рд╕рд╛рде рднреА рдРрд╕рд╛ рд╣реА рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:
  console.log(null); //null null = 1; //ReferenceError: Invalid left-hand side in assignment 

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



рдФрд░ рдЕрдм NaN рдХреЗ рд╕рд╛рде рднреА рдРрд╕рд╛ рд╣реА рдХрд░рддреЗ рд╣реИрдВ:
  console.log(NaN); //NaN NaN = 1; console.log(NaN); //NaN isNaN(NaN); //true 

рд╕рдорд╕реНрдпрд╛: рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЛ рдкреБрдирд░реНрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рдЕрд╢рдХреНрддрддрд╛ рдХреЛ рдкреБрдирд░реНрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЬрдм NaN рдХреЛ рдкреБрдирд░реНрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдСрдкрд░реЗрд╢рди рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрдирддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг: рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ NaN рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрджрд░реНрдн рдЪрд░ (рд╡рд┐рдВрдбреЛ рдСрдмреНрдЬреЗрдХреНрдЯ) рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, NaN рдХреЛ Number.NaN рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ "рдкрд╣реБрдВрдЪ" рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ, рдЖрдк рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ NaN рд╕рдВрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ:
  Object.getOwnPropertyDescriptor(window, NaN).writable; //false Object.getOwnPropertyDescriptor(Number, NaN).writable; //false 

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

рдЖрдк Object.defineProperty рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдЧреИрд░-рд╣рдЯрд╛рдиреЗ рдпреЛрдЧреНрдп рдпрд╛ рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреБрдг рдШреЛрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
  var obj = {}; Object.defineProperty(obj, 'a', {writable: true, configurable: true, value: 'a'}); Object.defineProperty(obj, 'b', {writable: false, configurable: true, value: 'b'}); Object.defineProperty(obj, 'c', {writable: false, configurable: false, value: 'c'}); console.log(obj.a); //a obj.a = 'b'; console.log(obj.a); //b delete obj.a; //true console.log(obj.b); //b obj.b = 'a'; console.log(obj.b); //b delete obj.b; //true console.log(obj.c); //c obj.b = 'a'; console.log(obj.c); //c delete obj.b; //false 


рднрд┐рдиреНрдирд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛


рдЖрдЗрдП 3rd рдЧреНрд░реЗрдб рдХреЛ рдпрд╛рдж рдХрд░реЗрдВ рдФрд░ рдХреБрдЫ рджрд╢рдорд▓рд╡ рдЕрдВрд╢ рдЬреЛрдбрд╝реЗрдВред рдЬреЗрдПрд╕ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдорди рдореЗрдВ рдЬреЛрдбрд╝ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:
  0.5 + 0.5; //1 0.5 + 0.7; //1.2 0.1 + 0.2; //0.30000000000000004; 0.1 + 0.7; //0.7999999999999999; 0.1 + 0.2 - 0.2; //0.10000000000000003 

рд╕рдорд╕реНрдпрд╛: рдХреБрдЫ рдЕрдВрд╢реЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╕рдордп, рдПрдХ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдЧрд▓рдд рдкрд░рд┐рдгрд╛рдо рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг: рдРрд╕реЗ рдкрд░рд┐рдгрд╛рдо рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдирдВрдмрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЦрд╝рд╛рд╕рд┐рдпрдд рдХреЗ рдХрд╛рд░рдг рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ, рдЕрдиреНрдп рднрд╛рд╖рд╛рдПрдВ рднреА рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ (рдореИрдВрдиреЗ рдкреАрдПрдЪрдкреА, рдкрд╛рдпрдерди рдФрд░ рд░реВрдмреА рдореЗрдВ рдЬрд╛рдБрдЪ рдХреА)ред
рдпреБрдХреНрддрд┐: рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ, рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рдирдВрдмрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ ред рджреВрд╕рд░реЗ, рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдХреЗрд╡рд▓ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рд╣реА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рд▓реЗрдХрд┐рди, рдЕрдЧрд░ рдЖрдкрдХреЛ рдЕрдЪрд╛рдирдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рд╕рдЯреАрдХ рдкрд░рд┐рдгрд╛рдо рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдкреИрд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдмрд╕ рд╕рднреА рддрд░реНрдХреЛрдВ рдХреЛ 10 рд╕реЗ рдЧреБрдгрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ 10 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣:
  function sum() { var result = 0; for (var i = 0, max = arguments.length; i< max; i++ ) { result += arguments[i]*10; } return result / 10; } sum(0.5, 0.5); //1 sum(0.5, 0.7); //1.2 sum(0.1, 0.2); //0.3 sum(0.1, 0.7); //0.8 sum(0.1, 0.2, -0.2); //0.1 


рдирд┐рд╖реНрдХрд░реНрд╖


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

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


All Articles