Ø¢ÛØ§ Ù ØªØºÛØ± ÙØ§Ø¨Ù رÙÛØª استØ
ÙØªÛج٠اÛ٠کد ÚÙ Ø®ÙØ§Ùد Ø¨ÙØ¯Ø
let x = 1;
function func() {
console.log(x); // ?
let x = 2;
}
func();
Ù¾ÛâÙÙØ´Øª: ÛÚ© تÙ٠در اÛ٠تکÙÛÙ ÙØ¬Ùد دارد. را٠ØÙ بدÛÙÛ ÙÛØ³Øª.
ÙØªÛجÙ: Ø§Ø±ÙØ±.
Ø³Ø¹Û Ú©ÙÛØ¯ آ٠را اجرا Ú©ÙÛØ¯:
let x = 1;
function func() {
console.log(x); // ReferenceError: Cannot access 'x' before initialization
let x = 2;
}
func();
در اÛ٠٠ثا٠٠ا Ù ÛâØªÙØ§ÙÛÙ ØªÙØ§Ùت خاص بÛÙ ÛÚ© Ù ØªØºÛØ± Â«ÙØ§Ù ÙØ¬Ùد» ٠«بدÙÙ Ù ÙØ¯Ø§Ø±Ø¯ÙÛ Ø§ÙÙÛÙ» را بÙÙÙ ÛÙ .
ÙÙ
Ø§ÙØ·Ùر ک٠در Ù
ÙØ§ÙÙ Ù
ØØ¯Ùد٠Ù
ØªØºÛØ±Ø Ú©ÙÙÚÙØ± Ø®ÙØ§ÙØ¯ÛØ¯Ø زÙ
اÙÛ Ú©Ù ÛÚ© بÙÙÚ© کد (ÛØ§ ÛÚ© تابع) Ø´Ø±ÙØ¹ ب٠اجرا شد٠Ù
ÛâÚ©ÙØ¯Ø ÛÚ© Ù
ØªØºÛØ± در ØØ§Ùت «بدÙÙ Ù
ÙØ¯Ø§Ø±Ø¯ÙÛ Ø§ÙÙÛÙ» ÙØ±Ø§Ø± Ù
ÛâÚ¯ÛØ±Ø¯. ٠تا زÙ
اÙÛ Ú©Ù Ø¨Ù Ø¯Ø³ØªÙØ± let برسد بدÙÙ Ù
ÙØ¯Ø§Ø±Ø¯ÙÛ Ø§ÙÙÛÙ Ù
ÛâÙ
Ø§ÙØ¯.
Ø¨Ù Ø¹Ø¨Ø§Ø±ØªÛ Ø¯ÛÚ¯Ø±Ø ÛÚ© Ù
ØªØºÛØ± Ø¨Ù ØµÙØ±Øª ÙÙÛ Ù
ÙØ¬Ùد است اÙ
ا ÙÙ
ÛâØªÙØ§Ùد ÙØ¨Ù از let Ø§Ø³ØªÙØ§Ø¯Ù Ø´ÙØ¯.
کد Ø¨Ø§ÙØ§ اÛ٠را ÙØ´Ø§Ù Ù ÛâØ¯ÙØ¯.
function func() {
// از Ø§Ø¨ØªØ¯Ø§Û Ø§Ø¬Ø±Ø§Û ØªØ§Ø¨Ø¹ Ø¨Ø±Ø§Û Ù
ÙØªÙر Ø´ÙØ§Ø®ØªÙâØ´Ø¯Ù Ø§Ø³Øª x Ù
ØªØºÛØ± Ù
ØÙÛ
// Ø¨Ø±Ø³Ø¯Ø Â«Ø¨Ø¯ÙÙ Ù
ÙØ¯Ø§Ø±Ø¯ÙÛ Ø§ÙÙÛÙ» (ØºÛØ± ÙØ§Ø¨Ù Ø§Ø³ØªÙØ§Ø¯Ù) است («Ù
ÙØ·ÙÙ Ù
رگ») let اÙ
ا تا بÙ
// از اÛ٠ر٠با Ø§Ø±ÙØ± Ù
ÙØ§Ø¬Ù Ù
ÛâØ´ÙÛÙ
console.log(x); // ReferenceError: Cannot access 'x' before initialization
let x = 2;
}
اÛÙ Ù
ÙØ·ÙÙ Ú©Ù ÛÚ© Ù
ØªØºÛØ± Ø¨Ù Ø·ÙØ± Ù
ÙÙØªÛ ØºÛØ± ÙØ§Ø¨Ù Ø§Ø³ØªÙØ§Ø¯Ù است (از Ø§Ø¨ØªØ¯Ø§Û Ø¨ÙÙÚ© کد تا let) را Ø¨Ø¹Ø¶Û Ø§ÙÙØ§Øª «Ù
ÙØ·ÙÙ Ù
رگ» Ù
ÛâÚ¯ÙÛÙØ¯.