рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХрд┐рд╕ рдореВрд▓реНрдп рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛?
var foo = 1; function bar() { if (!foo) { var foo = 10; } alert(foo); } bar();
рдпрджрд┐ рдЖрдк рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рд╣реИрдВ рдХрд┐ "10" рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реИ, рддреЛ рдирд┐рдореНрди рдХреЛрдб рдЖрдкрдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднреНрд░рдорд┐рдд рдХрд░реЗрдЧрд╛:
var a = 1; function b() { a = 10; return; function a() {} } b(); alert(a);
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ "1" рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ? рдпрджреНрдпрдкрд┐ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдЬреАрдм, рдЦрддрд░рдирд╛рдХ рдФрд░ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдФрд░ рдЕрднрд┐рд╡реНрдпрдВрдЬрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрдкрдХрд░рдг рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдХреЛрдИ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдирд╛рдо рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ "рдЙрддреНрдерд╛рдкрди" рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рднрд╛рд╖рд╛ рдХреЗ рдЗрд╕ рддрдВрддреНрд░ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рдЖрдЗрдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЧреБрдВрдЬрд╛рдЗрд╢ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЧреБрдВрдЬрд╛рдЗрд╢
рдХрд╛рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ newbies рдЙрд▓рдЭрди рдореЗрдВ рд╣реИрдВ рдЧреБрдВрдЬрд╛рдЗрд╢ рд╣реИред рдЖрдо рддреМрд░ рдкрд░, рди рдХреЗрд╡рд▓ рд╢реБрд░реБрдЖрддреАред рдореБрдЭреЗ рдХрдИ рдЕрдиреБрднрд╡реА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдорд┐рд▓реЗ рд╣реИрдВ рдЬреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЧреБрдВрдЬрд╛рдЗрд╢ рддрдВрддреНрд░ рдХреЛ рдирд╣реАрдВ рд╕рдордЭрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдмрд╛рд╣реНрдп рд░реВрдк рд╕реЗ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╕реА рдЬреИрд╕реА рднрд╛рд╖рд╛ рдХреЗ рд╕рдорд╛рди рд╣реИред
рдЖрдЗрдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реА рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВ:
#include <stdio.h> int main() { int x = 1; printf("%d, ", x); // 1 if (1) { int x = 2; printf("%d, ", x); // 2 } printf("%d\n", x); // 1 }
рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо 1, 2, 1 рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ C рдФрд░ рдЕрдиреНрдп рд╕рднреА C- рдЬреИрд╕реА рднрд╛рд╖рд╛рдПрдБ
рдХреЛрдб рдмреНрд▓реЙрдХ рдХреЗ рд╕реНрддрд░ рдкрд░ рд╕реНрдХреЛрдк рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА
рд╣реИрдВ ред рдЬрдм рдХреЛрдб рдХрд╛ рдПрдХ рдирдпрд╛ рдмреНрд▓реЙрдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╕реНрдерд┐рддрд┐, рддреЛ рдЗрд╕рдореЗрдВ рдШреЛрд╖рд┐рдд рдирдП рдЪрд░ рдмрд╛рд╣рд░реА рджрд╛рдпрд░реЗ рдХреЗ рдЪрд░ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
рд▓реЗрдХрд┐рди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдирд╣реАрдВред рдЗрд╕ рдХреЛрдб рдХреЛ рдлрд╛рдпрд░рдмрдЧ рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:
var x = 1; console.log(x);
рдЗрд╕ рдмрд╛рд░, рд╕рдВрдЦреНрдпрд╛ 1, 2, 2 рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рдПрдЧреАред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ
рдлрд╝рдВрдХреНрд╢рди рд╕реНрддрд░ рдкрд░ рдЧреБрдВрдЬрд╛рдЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛
рд╣реИ ред рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╣рдо рд╕реА рдЬреИрд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рджреЗрдЦрдиреЗ рдХреЗ рдЕрднреНрдпрд╕реНрдд рд╣реИрдВред рдХреЛрдб рдХреЗ рдмреНрд▓реЙрдХ, рдЬреИрд╕реЗ рдХрд┐ рдпрджрд┐ рдЙрд╕рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдЖрддрд╛ рд╣реИ,
рддреЛ рдирдпрд╛ рд╕реНрдХреЛрдк
рди рдмрдирд╛рдПрдВ ред рдХреЗрд╡рд▓ рдХрд╛рд░реНрдп рдирдП рджрд╛рдпрд░реЗ рдмрдирд╛рддреЗ рд╣реИрдВред
C, C ++, C # рдпрд╛ Java рдХреЗ рдЖрджреА рдХрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдмрд╣реБрдд рд╣реА рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдФрд░ рдЕрдкреНрд░рд┐рдп рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЖрдк рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╕реНрдХреЛрдк рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░реЗрдВ:
function foo() { var x = 1; if (x) { (function () { var x = 2;
рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛рдлреА рд▓рдЪреАрд▓рд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдк рдЬрд╣рд╛рдВ рдХрд╣реАрдВ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрд╕реНрдерд╛рдпреА рдХреЛрдб рдХреА рдЬрд░реВрд░рдд рд╣реИ, рди рдХреЗрд╡рд▓ рдХреЛрдб рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ред рд▓реЗрдХрд┐рди рдореИрдВ рдЬреЛрд░ рджреЗрдХрд░ рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЕрднреА рднреА рдЕрдкрдирд╛ рд╕рдордп рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНтАНрд╡рдпрди рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рддрд╛рдПрдВрдЧреЗред рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рднрд╛рд╖рд╛ рд╕реБрд╡рд┐рдзрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╕рдВрдж рд╣реИред рдпрджрд┐ рдЖрдк рджрд╛рдпрд░реЗ рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдЪрд░ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдШреЛрд╖рдгрд╛рдУрдВ рдХреЗ "рдЙрдард╛рди" рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдШреЛрд╖рдгрд╛рдПрдБ, рдирд╛рдордХрд░рдг, рдФрд░ рдЪрд░ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ "рдЙрдард╛рди"
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЧреБрдВрдЬрд╛рдЗрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рдХреЗ рдЪрд╛рд░ рдореБрдЦреНрдп рддрд░реАрдХреЗ рд╣реИрдВ:
- рднрд╛рд╖рд╛ рдХреЗ рдЖрдВрддрд░рд┐рдХ рддрдВрддреНрд░ : рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рджрд╛рдпрд░реЗ рдореЗрдВ, рдпрд╣ рдФрд░ рддрд░реНрдХ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
- рдФрдкрдЪрд╛рд░рд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ : рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рдФрдкрдЪрд╛рд░рд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдХрд╛рд░реНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдирд┐рдХрд╛рдп рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рд╣реИред
- рдлрд╝рдВрдХреНрд╢рди рдХреА рдШреЛрд╖рдгрд╛: рдлрд╝рдВрдХреНрд╢рди рдлреВ рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд () {}ред
- рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдШреЛрд╖рдгрд╛рдПрдБ : рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, var foo;
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреБрднрд╛рд╖рд┐рдпрд╛ рд╣рдореЗрд╢рд╛ рдЦрд╛рдореЛрд╢реА рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ ("рдЙрдард╛рддрд╛ рд╣реИ") рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдЪрд░ рдХреЗ рджрд╛рдпрд░реЗ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддрд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рдВрд╕ рдФрд░ рдмрд┐рд▓реНрдЯ-рдЗрди рд▓реИрдВрдЧреНрд╡реЗрдЬ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЗ рдФрдкрдЪрд╛рд░рд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдб:
function foo() { bar(); var x = 1; }
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА:
function foo() { var x; bar(); x = 1; }
рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЬрд┐рд╕ рд▓рд╛рдЗрди рдореЗрдВ рдШреЛрд╖рдгрд╛ рд╣реЛрддреА рд╣реИ, рд╡рд╣ рдмрд┐рд▓реНрдХреБрд▓ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЛ рдХрд╛рд░реНрдп рд╕рдорддреБрд▓реНрдп рд╣реИрдВ:
function foo() { if (false) { var x = 1; } return; var y = 1; } function foo() { var x, y; if (false) { x = 1; } return; y = 1; }
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЪрд░ рдХреЛ рдорд╛рди рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЙрдирдХреЗ рдШреЛрд╖рдгрд╛ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред рдХреЗрд╡рд▓ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдШреЛрд╖рдгрд╛рдПрдБ рд╣реА рдЙрдард╛рдИ рдЬрд╛рддреА рд╣реИрдВред рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреВрд░рд╛ рдлрд╝рдВрдХреНрд╢рди рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рд╕рдорд╛рд░реЛрд╣ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рджреЛ рдореБрдЦреНрдп рддрд░реАрдХреЗ рд╣реИрдВ, рдЖрдЗрдП рдЙрди рдкрд░ рдирдЬрд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ:
function test() { foo();
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреЗрд╡рд▓ рдмрд╛рд░ рдлрд╝рдВрдХреНрд╢рди рдЙрдард╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ "рдлреВ" рднреА рдЙрдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрдирд╛рдо рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ - рдпрд╣ рдЬрдЧрд╣ рдореЗрдВ рд░рд╣рддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЪрд░ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ "рдмрдврд╝рд╛рдиреЗ" рдХреЗ рдореБрдЦреНрдп рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ред рдмреЗрд╢рдХ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрд╡рдпрдВ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрджрд┐ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдирд╣реАрдВ рдереЗ рдЬрд┐рд╕рдореЗрдВ рд╕рдм рдХреБрдЫ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред
рдирд╛рдо рдХрд╛ рд╕рдВрдХрд▓реНрдк
рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рдирд╛рдо рд╕рдВрдХрд▓реНрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИред рдпрд╛рдж рд░рдЦреЗрдВ, рдЪрд╛рд░ рддрд░реАрдХреЗ рд╣реИрдВ рдЬрд┐рд╕рд╕реЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЧреБрдВрдЬрд╛рдЗрд╢ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред рдпрд╣ рдЙрд╕ рдХреНрд░рдо рдореЗрдВ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореИрдВрдиреЗ рдЙрдирдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдерд╛ рдХрд┐ рдирд╛рдо рд╕рдВрдХрд▓реНрдк рд╣реЛрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрджрд┐ рдХрд┐рд╕реА рдирд╛рдо рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдЙрд╕реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рдЕрдиреНрдп рдЗрдХрд╛рдИ рджреНрд╡рд╛рд░рд╛ рдХрднреА рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрд░реНрдерд╛рддреН, рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдШреЛрд╖рдгрд╛ рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдШреЛрд╖рдгрд╛рдУрдВ рдкрд░ рд╡рд░реАрдпрддрд╛ рд▓реЗрддреА рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдорд╛рди рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдХреЗрд╡рд▓ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдХреБрдЫ рдЕрдкрд╡рд╛рдж рд╣реИрдВ:
- рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рддрд░реНрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдРрд╕рд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдФрдкрдЪрд╛рд░рд┐рдХ рддрд░реНрдХреЛрдВ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдФрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреА рдШреЛрд╖рдгрд╛рдУрдВ рд╕реЗ рдкрд╣рд▓реЗ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд╛рд╕ рдФрдкрдЪрд╛рд░рд┐рдХ рддрд░реНрдХ рддрд░реНрдХ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдореЗрдВ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реЛрдЧреА, рднрд▓реЗ рд╣реА рдЗрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рди рдХрд╣рд╛ рдЬрд╛рдПред рдпрд╣ рдПрдХ рдмреБрд░реА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реБрд╡рд┐рдзрд╛ рд╣реИред рддрд░реНрдХ рдирд╛рдо рдХреЗ рдПрдХ рдФрдкрдЪрд╛рд░рд┐рдХ рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред
- рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ SyntaxError рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреАред рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рд╕реБрд╡рд┐рдзрд╛ рд╣реИред
- рдпрджрд┐ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдФрдкрдЪрд╛рд░рд┐рдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рдХрд╛ рдирд╛рдо рд╕рдорд╛рди рд╣реИ, рддреЛ рдЕрдВрддрд┐рдо рд░реВрдк рд╕реЗ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдкреВрд░реНрд╡рддрд╛ рд▓реЗрддрд╛ рд╣реИред рднрд▓реЗ рд╣реА рдпрд╣ рдлрдВрдХреНрд╢рди рдХреЗ рдмреБрд▓рд╛рдП рдЬрд╛рдиреЗ рдкрд░ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реБрдЖ рд╣реЛред
рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рдлрдВрдХреНрд╢рдирд▓ рдПрдХреНрд╕рдкреНрд░реЗрд╢рдВрд╕
рдЖрдк рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреА рдШреЛрд╖рдгрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП, рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рди рддреЛ рд╕реНрдХреЛрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рди рд╣реА рдлрд╝рдВрдХреНрд╢рди рдХреА рдмреЙрдбреА рдХреЗ рд╕рд╛рде рд╕реНрдХреЛрдк рдХреА рд╢реБрд░реБрдЖрдд рддрдХ рдмрдврд╝рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдмрддрд╛рдИ рдЧрдИ рд╣реИрдВ рдХрд┐ рдореЗрд░рд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ:
foo();
рдЗрд╕ рдЬреНрдЮрд╛рди рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВ
рддреЛ, рдЕрдм рдЖрдк рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдШреЛрд╖рдгрд╛рдУрдВ рдХреЗ рджрд╛рдпрд░реЗ рдФрд░ "рд╡реГрджреНрдзрд┐" рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╕рдордп рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ? рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдореЗрд╢рд╛ var рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВред рдореИрдВ
рдЬреЛрд░ рджреЗрдХрд░ рдХрд╣рддрд╛
рд╣реВрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕
рдмрд┐рд▓реНрдХреБрд▓ рдПрдХ var рдкреНрд░рддрд┐ рд╕реНрдХреЛрдк рд╣реИ рдФрд░ рдпрд╣ рдЗрд╕рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ "рдЙрддреНрдерд╛рди" рд╕реЗ рдЬреБрдбрд╝реА рд╕рдорд╕реНрдпрд╛рдПрдВ рдХрднреА рдирд╣реАрдВ рд╣реЛрдВрдЧреАред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕рд╕реЗ рдЙрди рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдореМрдЬреВрджрд╛ рджрд╛рдпрд░реЗ рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рдореИрдВ JSLint рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХрд╛ рдХреЛрдб рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
function foo(a, b, c) { var x = 1, bar, baz = "something"; }
рдорд╛рдирдХ рдХреНрдпрд╛ рдХрд╣рддрд╛ рд╣реИ
рд╕рдм рдХреБрдЫ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ ECMAScript рдорд╛рдирдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдпрд╣рд╛рдБ рдпрд╣ рдЪрд░ рдШреЛрд╖рдгрд╛рдУрдВ рдФрд░ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд╣рддрд╛ рд╣реИ (рдЦрдВрдб
12.2.2 ):
рдпрджрд┐ рдлрдВрдХреНрд╢рди рдХреА рдШреЛрд╖рдгрд╛ рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдЗрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЛ рдЗрд╕ рдлрдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд▓реЛрдХрд▓ рд╕реНрдХреЛрдк рдХреЗ рдЕрдВрджрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╕реЗрдХреНрд╢рди 10.1.3 рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред рдЕрдиреНрдпрдерд╛, рдЙрдиреНрд╣реЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд, рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╕реНрддреБ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдЦрдВрдб 10.1.3 рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ) {DontDelete} рд╕рдВрдкрддреНрддрд┐ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдПред рдирд┐рд╖реНрдкрд╛рджрди рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдкрд░ рдЪрд░ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдмреНрд▓реЙрдХ рдПрдХ рдирдП рдирд┐рд╖реНрдкрд╛рджрди рдХреНрд╖реЗрддреНрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдХреЗрд╡рд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдФрд░ рдлрдВрдХреНрд╢рди рдЕрдирд╛рдЙрдВрд╕рдореЗрдВрдЯ рдПрдХ рдирдпрд╛ рд╕реНрдХреЛрдк рдмрдирд╛рддреЗ рд╣реИрдВред рдЬрдм рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдорд╛рди рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рдЖрд░рдВрднрд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╣ рдЪрд░ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡реИрд░рд┐рдПрдмрд▓ рдЗрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рдордп рдЙрд╕рдХреЗ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХрд╛ рдорд╛рди рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рди рдХрд┐ рдЙрд╕ рд╕рдордп рдкрд░ рдЬрдм рдЪрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдиреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реБрд╡рд┐рдзрд╛ рдкрд░ рдХреБрдЫ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рднреНрд░рдорд┐рдд рд╣реИрдВред рдореИрдВрдиреЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ рдЙрддрдирд╛ рдирд┐рд░рдВрддрд░ рд╣реЛрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рддрд╛рдХрд┐ рдЖрдк рдФрд░ рдЕрдзрд┐рдХ рднреНрд░рдорд┐рдд рди рд╣реЛрдВред рдЕрдЧрд░ рдореИрдВрдиреЗ рдХреЛрдИ рдЧрд▓рддреА рдХреА рд╣реИ рдпрд╛ рдХреБрдЫ рдпрд╛рдж рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВред