рдХреЛрдорд╛ рд╕рдВрдЪрд╛рд▓рдХ

рд╣рдо рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд╡рд┐рд╖рдп рдХреЛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ , рдЗрд╕ рд╕рдордп рдЖрдк рдСрдкрд░реЗрдЯрд░ рдХреЙрдорд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдХрд╣рд╛рдиреА рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЖрдЗрдП рд╢реБрд░реБрдЖрдд рдХрд░рддреЗ рд╣реИрдВ рдПрдХ рдордЬреЗрджрд╛рд░ рдЯреНрд╡реАрдЯ рд╕реЗ:

рдпрджрд┐ рдЫрд╡рд┐ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреА рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рд▓реЗрдЦрдХ рдХреЛ рд▓рд┐рдЦреЗрдВ!

рдЕрдВрдд рдореЗрдВ 'c' рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдСрдкрд░реЗрдЯрд░ рд╣реИред рдорд╣рддреНрд╡рдкреВрд░реНрдг рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЕрдВрддрд┐рдо, рдереЛрдбрд╝рд╛ рдкреНрд░рд▓реЗрдЦрд┐рдд, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред рдпрд╣ рдЗрддрдирд╛ рдЖрдо рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рд╡рд╣ рд╕рд░рд▓, рд╢рд┐рд╖реНрдЯ рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреЗ рд░рд┐рд╢реНрддреЗ рдореЗрдВ рд░рд╣рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

рд╡рд╣ рдХреНрдпрд╛ рдХрд░ рд░рд╣реА рд╣реИ?


рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдСрдкрд░реЗрдЯрд░ рджреЛрдиреЛрдВ рдСрдкрд░реЗрдВрдб (рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ) рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░реЗ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред ( MDC )
var a = (7, 5); a; //5 var x, y, z x = (y=1, z=4); x; //4 y; //1 z; //4 

рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХреЛрд╖реНрдардХ рд╕реЗ рдШрд┐рд░реЗ рдЪрд░ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреНрдпреЛрдВ рд╣реИрдВ?


рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рдХрд╛рд░рдгред рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдСрдкрд░реЗрдЯрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рддреАрди рдСрдкрд░реЗрдЯрд░ (* + рдФрд░) рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

 return 5 * 2 + 3, 22; 

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

 //original return 5 * 2 + 3, 22; //apply * operator return 10 + 3, 22; //apply + operator return 13, 22; //apply , operator return 22; 

рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрджрд┐ рд╣рдо рдХреЛрд╖реНрдардХ рд╣рдЯрд╛рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ:

 //original var a = 7, 5; //apply = operator var a, 5; //a is now 7 //SyntaxError: missing variable name 

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

 //original var a = (7, 5); //apply group var a = 5; 

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

рдХреБрдЫ рднрд╛рд╡реЛрдВ рдореЗрдВ рдХрдИ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?


рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрдЯрд░ рдХреЛ рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

 var a = (1, 2, 3, 4); a; //4 

рдпрд╣ рдЗрд╕рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ:

 var a = (((1, 2), 3), 4); a; //4 

рдЯрд╛рдЗрдк рд╢рд╛рдмреНрджрд┐рдХ рдФрд░ рдШреЛрд╖рдгрд╛рдУрдВ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рдХреЙрдорд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?


рдпреЗ рд╕реАрдорд╛рдВрдХрдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рд╕рдВрдЪрд╛рд▓рдХ рдирд╣реАрдВ рд╣реИрдВред рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рд╕реАрдорд╛рдВрдХрдХ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдПрдХ рд╕реВрдЪреА рдореЗрдВ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 //    4  var arr = [1, 2, 3, 4]; //     var obj = { a: 22, f: function() {return this.a*this.a} } //   var a = 1, b = 2, c = 3; // ,  2  Math.max(4, 7); 

рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░реЗрдВ?


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

 var r = [], n = 0, a = 0, b = 1, next; function nextFibonacci() { next = a + b; return b = (a = b, next); // <<<   } while(n++ < 10) { r.push(nextFibonacci()); } r; //[1, 2, 3, 5, 8, 13, 21, 34, 55, 89] 


 function getRandomPrime() { while(n = Math.round(Math.random()*1000000000), !isPrime(n)); // <<<   return n; } var isPrime = function(n) { d = Math.ceil(Math.sqrt(n)); while(n%(d--) && d); return !d; } getRandomPrime(); //425593109 getRandomPrime(); //268274719 

рдХреНрдпрд╛ рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рдПрдХ рдирдХрд╛рдмрдкреЛрд╢ рдирд╣реАрдВ рд╣реИ?


рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рдШреЛрд╖рдгрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд╛рдЬрдХ рд╣реИ, рдФрд░ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдШреЛрд╖рдгрд╛рдУрдВ рдХреЗ рдЕрдВрджрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд╛рдЬрдХ рд╣реИред

рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдПрдХрд╛рдзрд┐рдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП && рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛?


рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдСрдкрд░реЗрдЯрд░ && рдФрд░ рдСрдкрд░реЗрдЯрд░ рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм рд╣реИ || рдЗрди рд╕рднреА рдХрдердиреЛрдВ рдореЗрдВ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдЕрдВрддрд┐рдо рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╡рд╛рдкрд╕ рдЖрддреА рд╣реИред рдпрд╣рд╛рдБ рдЙрдирдХрд╛ рдЕрдВрддрд░ рд╣реИ:

LHE - рдмрд╛рдИрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐
рдЖрд░рдПрдЪрдПрдЪ - рд╕рд╣реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐

LHE && RHE
1. рд╣рдореЗрд╢рд╛ LHE рдХрд░рддрд╛ рд╣реИ
2. рдпрджрд┐ LHE рд╕рд╣реА рд╣реИ, RHE рдХрд░рддрд╛ рд╣реИ

LHE || RHE
1. рд╣рдореЗрд╢рд╛ LHE рдХрд░рддрд╛ рд╣реИ
2. рдпрджрд┐ LHE рдЧрд▓рдд рд╣реИ, RHE рдХрд░рддрд╛ рд╣реИ

LHE, RHE
1. рд╣рдореЗрд╢рд╛ LHE рдХрд░рддрд╛ рд╣реИ
2. рд╣рдореЗрд╢рд╛ RHE рдХрд░рддрд╛ рд╣реИ

рдЖрдкрдХреЛ рдПрдХ рдХреЙрдорд╛ рдЪреБрдирдирд╛ рдЪрд╛рд╣рд┐рдП рдЕрдЧрд░ рджреЛрдиреЛрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?


рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдСрдкрд░реЗрдЯрд░ рдЖрдкрдХреЛ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рдХрдИ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗрд╡рд▓ рдПрдХ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред

рдЫреЛрд░реЛрдВ рдХреЗ рд▓рд┐рдП

рдпрд╣рд╛рдБ рдлрд┐рдмреЛрдирд╛рдЪреА рд╕рдВрдЦреНрдпрд╛ рдЬрдирд░реЗрдЯрд░ рдХрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдЬреЛ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдСрдкрд░реЗрдЯрд░ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:

 for ( var i=2, r=[0,1]; i<15; r.push(r[i-1] + r[i-2]), i++ ); r //"0,1,1,2,3,5,8,13,21,34,55,89,144,233,377" 

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

 function toCurrency(total, values) { total *= 100; for( var i=0,counts=[]; counts[i]=total/values[i], total=total%values[i]; //   i++ ); return counts.map(Math.floor); } toCurrency(32.47, [500, 100, 25, 10, 5, 1]); //[6, 2, 1, 2, 0, 2] 

рд╕рдорд╛рди рдЙрдкрдпреЛрдЧрд┐рддрд╛, рд▓реЗрдХрд┐рди рдкреНрд░рд╛рд░реВрдкрдг рдХреЗ рд╕рд╛рде:

 function toCurrency(total, values, sym) { total *= 100; //do the calc for( var i=0,counts=[]; counts[i]=total/values[i], total=total%values[i]; //   i++ ); //format var results = counts.map(function(s,i) { return s>=1 && [Math.floor(s),"x",(sym || '$') + (values[i]/100).toFixed(2)].join(' '); }); return results.filter(Boolean).join(', '); } toCurrency(19.77, [500,100,25,10,5,1]); //"3 x $5.00, 4 x $1.00, 3 x $0.25, 2 x $0.01" toCurrency(19.77, [500,100,50,20,10,5,1], '┬г'); //"3 x ┬г5.00, 4 x ┬г1.00, 1 x ┬г0.50, 1 x ┬г0.20, 1 x ┬г0.05, 2 x ┬г0.01" toCurrency(19.77, [500,100,50,20,10,5,2,1], 'тВм'); //"3 x тВм5.00, 4 x тВм1.00, 1 x тВм0.50, 1 x тВм0.20, 1 x тВм0.05, 1 x тВм0.02" 

рдирд┐рдореНрди рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд▓реВрдк рдХреЗ рднреАрддрд░ рджреЛ рдЪрд░ рдХреЛ рдПрдХ рд╕рд╛рде рдмрдврд╝рд╛рдиреЗ рдФрд░ рдШрдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЖрдЙрдЯрдкреБрдЯ рдПрдХ рд╡рдХреНрд░ рд╣реИ:

 function renderCurve() { for(var a = 1, b = 10; a*b; a++, b--) //   console.log(new Array(a*b).join('*')); } renderCurve(); /* ********* ***************** *********************** *************************** ***************************** ***************************** *************************** *********************** ***************** ********* */ 

рдЬрдмрдХрд┐ рд▓реВрдк

рдЖрдк рдЕрд▓реНрдк-рд╕рдордп рдХреЗ рд▓реВрдк рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдкреВрд░реНрд╡рдЬ рдХреЛ рдЯреИрдЧрдиреЗрдо (jQuery рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдЕрдиреБрд░реВрдк) рдирд╛рдордХ рддрддреНрд╡реЛрдВ рдХреА рд╕реВрдЪреА рд╕реЗ рдЦреЛрдЬрддрд╛ рд╣реИред

 function firstAncestor(el, tagName) { while(el = el.parentNode, el && (el.tagName != tagName.toUpperCase())); return el; } //element in http://ecma262-5.com/ELS5_HTML.htm var a = $('Section_15.1.1.2'); firstAncestor(a, 'div'); //<div class="page"> 

рдЯрд░реНрдирд░реА рдСрдкрд░реЗрдЯрд░

рдЯрд░реНрдиреЗрд░реА рдСрдкрд░реЗрдЯрд░ рдХреЗрд╡рд▓ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдХрдИ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдФрд░ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрд▓реНрдк рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдСрдкрд░реЗрдЯрд░ рдЕрдзрд┐рдХ рдкрдардиреАрдп рд╣реЛрддрд╛ рд╣реИ:
 //player loses lives ? (gameOver(), exit()) : (lives--, go()); 

рдбрд┐рдмрдЧ

рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдСрдкрд░реЗрдЯрд░ рдЖрдкрдХреЛ рдХреЛрдб рдмрджрд▓реЗ рдмрд┐рдирд╛ рдХрд╣реАрдВ рднреА рдХрдВрд╕реЛрд▓ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

 // products  i > n var i=10, n=0, total=0; while(console.log(i,n), i-- > n++); { total += i*n } 


 //   var arr = [1,2,3]; for ( var i=0, total=0; i<arr.length; console.log(i,total), total += arr[i++]); ) 


 // 4        var testArray = [3, 5, 8, 4], total = 0; var plusFour = testArray.map(function(e) {e + 4}) plusFour.forEach(function(n) {console.log(n), isNaN(n) || (total += n)}); 

рдЗрдЯрд░реЗрдЯрд░ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ

@wavded рдиреЗ рдХреЙрдорд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИред

 var colorIndex = 0, colors = ["FF0000", "008000", "FF0086", "A2FF00", "0000FF", "800080"]; function selectNextColor(){ return colors[colorIndex++] || colors[colorIndex = 0, colorIndex++]; } 

рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдХреА рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдХреЙрд▓

eval 1 рдЙрд╕ рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЗрд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдмрд╛рдд рдХреА рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рд▓реВрдк рдореЗрдВ eval рдХреЙрд▓ рдХрд░рдирд╛ рдПрдХ рд╣реА рдкрд░рд┐рдгрд╛рдо рджреЗрдЧрд╛ред

kangax рдиреЗ рд▓рд┐рдЦрд╛ рдХрд┐ рд╣рдо рдХреЙрдорд╛ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рдХреЙрд▓ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдореЗрд╢рд╛ рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрджрд░реНрдн 2 рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛:

 var a = {}; (function() { eval("this.alert('If you can read this I must be global!')"); }).call(a); //TypeError: this.alert is not a function (function() { (0,eval)("this.alert('If you can read this I must be global!')"); }).call(a); //alerts: 'If you can read this I must be global!' 

1. рдХреГрдкрдпрд╛ рд╣реЛрд▓реАрд╡рд░реЛрд╡ рдХреЗ рдмрд┐рдирд╛, рд╣рд░ рдХреЛрдИ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдмреБрд░рд╛рдИ рдмреБрд░рд╛рдИ рд╣реИ
2. ES5 рдорд╛рдирдХ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рдЧреИрд░-рдкреНрд░рддреНрдпрдХреНрд╖ рдХреЙрд▓ рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ,
рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрд╕ рдирд┐рдпрдо рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (IE <= 8)

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


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

рдЖрджрд░


ECMA-262 5 рд╡рд╛рдВ рд╕рдВрд╕реНрдХрд░рдг
11.14 рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдСрдкрд░реЗрдЯрд░
10.4.2 рдирд┐рд╖реНрдХрд╛рд╕рди рдХреЛрдб рджрд░реНрдЬ рдХрд░рдирд╛
резрел.рез.реи.рез.рез рдкреНрд░рддреНрдпрдХреНрд╖ рд╕реЗ рдХреЙрд▓ рдХрд░реЗрдВ

рдореЛрдЬрд╝рд┐рд▓рд╛ рдбреЗрд╡рд▓рдкрд░ рдХреЗрдВрджреНрд░
рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдСрдкрд░реЗрдЯрд░
рдСрдкрд░реЗрдЯрд░ рдкреВрд░реНрд╡рддрд╛

рдЬреВрд░рд┐ рдЬрд╛рдпрддреНрд╕реЗрд╡ ( рдХрдВрдЧреИрдХреНрд╕ ): рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд┐рдХрд╛рд╕, рд╡рд┐рдХрд▓реНрдк рдХреНрдпрд╛ рд╣реИрдВ
рдорд╛рд░реНрдХ рд╣реИрдЯрд░ (@wavded): рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рд░рдгреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд╛рдЗрдХрд┐рд▓ рдЪрд▓рд╛рдирд╛

UPD рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдФрд░ рдЕрдиреБрд╡рд╛рдж рдХреА рдЦрд╛рдорд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛

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


All Articles