Ø§Ø·ÙØ§Ø¹Ø§Øª اÛÙ Ù ÙØ§ÙÙ Ø¨Ø±Ø§Û ÙÙÙ ÛØ¯Ù اسکرÛپتâÙØ§Û ÙØ¯ÛÙ Û Ù ÙÛØ¯ است.
٠ا Ú©Ø¯ÙØ§Û Ø¬Ø¯ÛØ¯ را اÛÙÚ¯ÙÙÙ ÙÙ ÛâÙÙÛØ³ÛÙ .
دÙÛÙØ§ در ÙØµÙ اÙÙ Ø¯Ø±Ø¨Ø§Ø±Ù Ù ØªØºÛØ±ÙØ§Ø Ù Ø§ س٠را٠تعرÛÙ Ù ØªØºÛØ± را ٠عرÙÛ Ú©Ø±Ø¯ÛÙ :
letconstvar
تعرÛÙ Ù
ØªØºÛØ± ØªÙØ³Ø· var Ù
اÙÙØ¯ let است. اکثر اÙÙØ§Øª Ù
ا Ù
ÛâØªÙØ§ÙÛÙ
let را با var جاÛگزÛÙ Ú©ÙÛÙ
ÛØ§ برعکس ٠تÙÙØ¹ داشت٠باشÛÙ
Ú©Ù Ø¯Ø³ØªÙØ±Ø§Øª کار Ú©ÙÙØ¯:
var message = "Ø³ÙØ§Ù
";
alert(message); // Ø³ÙØ§Ù
اÙ
ا از درÙÙØ var Ú¯ÙÙÙâØ§Û Ø¨Ø³ÛØ§Ø± Ù
ØªÙØ§Ùت است ک٠از زÙ
اÙâÙØ§Û ÙØ¯ÛÙ
ÙØ¬Ùد دارد. Ø¨Ù Ø·ÙØ± Ú©ÙÛ Ø¯Ø± اسکرÛپتâÙØ§Û Ø¬Ø¯ÛØ¯ Ø§Ø³ØªÙØ§Ø¯Ù ÙÙ
ÛâØ´ÙØ¯ ÙÙÛ ÙÙÙØ² ÙÙ
در اسکرÛپتâÙØ§Û ÙØ¯ÛÙ
Û Ú©Ù
Û٠کرد٠است.
اگر ش٠ا ÙØ±Ø§Ø± ÙÛØ³Øª ÚÙÛ٠اسکرÛپتâÙØ§ÛÛ Ø±Ø§ ببÛÙÛØ¯ Ù ÛâØªÙØ§ÙÛØ¯ اÛÙ ÙØµÙ را رد Ú©ÙÛØ¯ ÛØ§ Ù Ø·Ø§ÙØ¹Ù آ٠را Ø¹ÙØ¨ Ø¨ÛØ§ÙØ¯Ø§Ø²ÛØ¯.
از سÙÛÛ Ø¯ÛÚ¯Ø±Ø Ø²Ù
اÙÛ Ú©Ù Ø§Ø³Ú©Ø±ÛپتâÙØ§Û ÙØ¯ÛÙ
Û Ø±Ø§ از var ب٠let Ú©ÙÚ Ù
ÛâØ¯ÙÛÙ
Ø Ø¯Ø§ÙØ³ØªÙ ØªÙØ§ÙتâÙØ§ Ø¨Ø±Ø§Û Ø¬ÙÙÚ¯ÛØ±Û از Ø§Ø±ÙØ±ÙØ§Û Ø¹Ø¬ÛØ¨ Ù
ÙÙ
است.
Ú©ÙÙ ÙâÛ âvarâ Ù ØØ¯Ùد٠بÙÙÚ© ÙØ¯Ø§Ø±Ø¯
Ù
ØªØºÛØ±ÙاÛÛ Ú©Ù Ø¨Ø§ var تعرÛ٠شدÙâØ§ÙØ¯Ø ÛØ§ Ù
ØØ¯Ùد٠تابع Ø¯Ø§Ø±ÙØ¯ ÛØ§ Ù
ØØ¯Ùد٠گÙÙØ¨Ø§Ù. Ø¢ÙâÙØ§ در اÛ٠بÙÙÚ©âÙØ§ ÙØ§Ø¨Ù رÙÛØª ÙØ³ØªÙد.
Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:
if (true) {
var test = true; // Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯ "var" از "let" ب٠جاÛ
}
alert(test); // true ØÙÙ
باÙÛ Ù
ÛâÙ
Ø§ÙØ¯ if Ù
ØªØºÛØ± بعد از
ÚÙÙ var بÙÙÚ©âÙØ§Û کد را ÙØ§Ø¯Ûد٠Ù
ÛâÚ¯ÛØ±Ø¯Ø Ù
ا ÛÚ© Ù
ØªØºÛØ± Ú¯ÙÙØ¨Ø§Ù test Ø®ÙØ§ÙÛÙ
داشت.
اگر Ù
ا Ø¨Ù Ø¬Ø§Û var test از let test Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâکردÛÙ
Ø Ø³Ù¾Ø³ Ù
ØªØºÛØ± ÙÙØ· درÙÙ if ÙØ§Ø¨Ù رÙÛØª Ø¨ÙØ¯:
if (true) {
let test = true; // "let" Ø§Ø³ØªÙØ§Ø¯Ù از
}
alert(test); // ReferenceError: test is not defined
ÙÙ
ÛÙ Ù
ÙØ±Ø¯ Ø¨Ø±Ø§Û ØÙÙÙâÙØ§ ÙÙ
صد٠Ù
ÛâÚ©ÙØ¯: var ÙÙ
ÛâØªÙØ§Ùد در Ù
ØØ¯Ùد٠بÙÙÚ© ØÙÙ٠باشد:
for (var i = 0; i < 10; i++) {
var one = 1;
// ...
}
alert(i); // 10 ØØ¨Ø¹Ø¯ از ØÙÙÙ ÙØ§Ø¨Ù رÙÛØª است ÚÙÙ ÛÚ© Ù
ØªØºÛØ± Ú¯ÙÙØ¨Ø§Ù است "i"
alert(one); // 1 ØØ¨Ø¹Ø¯ از ØÙÙÙ ÙØ§Ø¨Ù رÙÛØª است ÚÙÙ ÛÚ© Ù
ØªØºÛØ± Ú¯ÙÙØ¨Ø§Ù است "one"
اگر ÛÚ© بÙÙÚ© کد درÙ٠تابع Ø¨Ø§Ø´Ø¯Ø Ø³Ù¾Ø³ var ÛÚ© Ù
ØªØºÛØ± در Ø³Ø·Ø ØªØ§Ø¨Ø¹ Ù
ÛâØ´ÙØ¯:
function sayHi() {
if (true) {
var phrase = "Ø³ÙØ§Ù
";
}
alert(phrase); // کار Ù
ÛâÚ©ÙØ¯
}
sayHi();
alert(phrase); // ReferenceError: phrase is not defined
ÙÙ
Ø§ÙØ·Ùر Ú©Ù Ù
ÛâØ¨ÛÙÛÙ
Ø var از درÙÙ ifØ for ÛØ§ بÙÛ٠بÙÙÚ©âÙØ§Û کد Ø¨ÛØ±ÙÙ Ù
ÛâØ¢ÛØ¯. ب٠اÛ٠دÙÛ٠ک٠در زÙ
اÙâÙØ§Û ÙØ¯ÛÙ
Ø Ø¨ÙÙÚ©âÙØ§ در Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت Ù
ØÛØ·âÙØ§Û ÙØºÙÛ ÙØ¯Ø§Ø´ØªÙد Ù var ÛÚ© باÙÛâÙ
Ø§ÙØ¯Ù از آ٠است.
Ú©ÙÙ Ù âvarâ ØªØ¹Ø±ÛÙâÙØ§Û Ø¯ÙØ¨Ø§Ø±Ù را ÙØ¨ÙÙ Ù ÛâÚ©ÙØ¯
اگر Ù
ا با let Ù
ØªØºÛØ±Û Ûکسا٠را Ø¯ÙØ¨Ø§Ø± در Ù
ØØ¯Ùد٠بÙÙÚ© Ûکسا٠تعرÛÙ Ú©ÙÛÙ
Ø ÛÚ© Ø§Ø±ÙØ± Ø§ÛØ¬Ø§Ø¯ Ù
ÛâØ´ÙØ¯:
let user;
let user; // SyntaxError: 'user' has already been declared
با var Ù
ا Ù
ÛâØªÙØ§ÙÛÙ
ÛÚ© Ù
ØªØºÛØ± را ÙØ± ÚÙØ¯ بار Ú©Ù Ø¨Ø®ÙØ§ÙÛÙ
Ø¯ÙØ¨Ø§Ø±Ù تعرÛÙ Ú©ÙÛÙ
. اگر Ù
ا از var ÙÙ
را٠با ÛÚ© Ù
ØªØºÛØ± از ÙØ¨Ù تعرÛÙ Ø´Ø¯Ù Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ
Ø ÙØ§Ø¯ÛØ¯Ù Ú¯Ø±ÙØªÙ Ù
ÛâØ´ÙØ¯:
var user = "Pete";
var user = "John"; // Ú©Ø§Ø±Û Ø§ÙØ¬Ø§Ù
ÙÙ
ÛâØ¯ÙØ¯ (از ÙØ¨Ù تعرÛ٠شدÙ) "var" اÛÙ
// ...Ø§Ø±ÙØ±Û Ø§ÛØ¬Ø§Ø¯ ÙÙ
ÛâÚ©ÙØ¯
alert(user); // John
Ù ØªØºÛØ±ÙØ§Û âvarâ Ù ÛâØªÙØ§ÙÙØ¯ پاÛÛÙ Ù ØÙ Ø§Ø³ØªÙØ§Ø¯ÙâØ´Ø§Ù ØªØ¹Ø±ÛÙ Ø´ÙÙØ¯
Ù
ØªØºÛØ±ÙØ§Û ØªØ¹Ø±Û٠شد٠با var زÙ
اÙÛ Ú©Ù Ø§Ø¬Ø±Ø§Û ØªØ§Ø¨Ø¹ Ø´Ø±ÙØ¹ Ù
ÛâØ´ÙØ¯ (ÛØ§ Ø¨Ø±Ø§Û Ù
ØªØºÛØ±ÙØ§Û Ú¯ÙÙØ¨Ø§Ù زÙ
اÙÛ Ú©Ù Ø§Ø³Ú©Ø±Ûپت Ø´Ø±ÙØ¹ Ù
ÛâØ´ÙØ¯) پردازش Ù
ÛâØ´ÙÙØ¯.
Ø¨Ù Ø¹Ø¨Ø§Ø±ØªÛ Ø¯ÛÚ¯Ø±Ø Ù
ØªØºÛØ±ÙØ§Û var بدÙÙ ØªÙØ¬Ù ب٠Ù
ØÙ تعرÛ٠آÙâÙØ§Ø از زÙ
اÙÛ Ú©Ù Ø§Ø¬Ø±Ø§Û ØªØ§Ø¨Ø¹ Ø´Ø±ÙØ¹ Ù
ÛâØ´ÙØ¯ تعرÛÙ Ù
ÛâØ´ÙÙØ¯ (با ÙØ±Ø¶ اÛÙک٠تعرÛ٠کرد٠درÙ٠تابع ØªÙØ¯Ø±ØªÙ ÙÛØ³Øª).
پس اÛ٠کد:
function sayHi() {
phrase = "Ø³ÙØ§Ù
";
alert(phrase);
var phrase;
}
sayHi();
â¦Ø§Ø² ÙØØ§Ø¸ ÙÙÛ Ø¨Ø§ اÛ٠کد برابر است (عبارت var phrase را Ø¨Ø§ÙØ§ بردÛÙ
):
function sayHi() {
var phrase;
phrase = "Ø³ÙØ§Ù
";
alert(phrase);
}
sayHi();
â¦ØØªÛ Ø¨Ø§ اÛÙ Ù٠برابر است (Ø¨Ù ÛØ§Ø¯ Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯ ک٠بÙÙÚ©âÙØ§Û کد ÙØ§Ø¯ÛØ¯Ù Ú¯Ø±ÙØªÙ Ù ÛâØ´ÙÙØ¯):
function sayHi() {
phrase = "Ø³ÙØ§Ù
"; // (*)
if (false) {
var phrase;
}
alert(phrase);
}
sayHi();
Ø§ÙØ±Ø§Ø¯ Ø¨Ù Ø¢Ù Â«Ø¨Ø§ÙØ§ بردÙ» ÙÙ
Ù
ÛâÚ¯ÙÛÙØ¯ ÚÙ٠تÙ
اÙ
varÙØ§ Ø¨Ù Ø¨Ø§ÙØ§Û تابع Â«Ø³Ø¹ÙØ¯ Ù
ÛâÚ©ÙÙØ¯Â».
پس در Ù
Ø«Ø§Ù Ø¨Ø§ÙØ§Ø شاخ٠if (false) ÙÛÚÙÙØª اجرا ÙÙ
ÛâØ´ÙØ¯ اÙ
ا Ø§ØµÙØ§ Ù
ÙÙ
ÙÛØ³Øª. var ک٠درÙ٠آ٠است در Ø§Ø¨ØªØ¯Ø§Û Ø§Ø¬Ø±Ø§Û ØªØ§Ø¨Ø¹ پردازش Ù
ÛâØ´ÙØ¯ پس ÙÙگاÙ
Ø§Ø¬Ø±Ø§Û (*) Ù
ØªØºÛØ± ÙØ¬Ùد دارد.
تعرÛÙ Ù ØªØºÛØ± Ø¨Ø§ÙØ§ Ù ÛâØ±ÙØ¯ ا٠ا Ù ÙØ¯Ø§Ø±Ø¯ÙÛâÙØ§ ÙÙ.
اÛÙ Ù ÙØ¶Ùع ÛÚ© Ù Ø«Ø§Ù Ø¨ÙØªØ± ÙÙ Ø§ÛØ´ داد٠٠ÛâØ´ÙØ¯:
function sayHi() {
alert(phrase);
var phrase = "Ø³ÙØ§Ù
";
}
sayHi();
خط var phrase = "Ø³ÙØ§Ù
" در Ø®ÙØ¯Ø´ د٠کار Ø§ÙØ¬Ø§Ù
Ù
ÛâØ¯ÙØ¯:
- تعرÛÙ Ù
ØªØºÛØ± با
var. - Ù
ÙØ¯Ø§Ø±Ø¯ÙÛ Ù
ØªØºÛØ± با
=.
تعرÛÙ Ù ØªØºÛØ± در Ø§Ø¨ØªØ¯Ø§Û Ø§Ø¬Ø±Ø§Û ØªØ§Ø¨Ø¹ پردازش Ù ÛâØ´ÙØ¯ (Â«Ø¨Ø§ÙØ§ Ù ÛâØ±ÙØ¯Â») ا٠ا Ù ÙØ¯Ø§Ø±Ø¯ÙÛ ÙÙ ÛØ´Ù در جاÛÛ Ú©Ù ÙØ¬Ùد دارد Ø§ÙØ¬Ø§Ù Ù ÛâØ´ÙØ¯. پس کد Ø¨Ø§ÙØ§ اساسا ٠اÙÙØ¯ کد پاÛÛ٠کار Ù ÛâÚ©ÙØ¯:
function sayHi() {
var phrase; // ...تعرÛÙ Ù
ØªØºÛØ± در ابتدا Ø§ÙØ¬Ø§Ù
Ù
ÛâØ´ÙØ¯
alert(phrase); // undefined
phrase = "Hello"; // ...Ù
ÙØ¯Ø§Ø±Ø¯ÙÛ - زÙ
اÙÛ Ú©Ù Ø§Ø¬Ø±Ø§ ب٠آ٠Ù
ÛâØ±Ø³Ø¯
}
sayHi();
ÚÙ٠تÙ
اÙ
تعرÛÙ Ù
ØªØºÛØ±ÙØ§Û var در Ø§Ø¨ØªØ¯Ø§Û ØªØ§Ø¨Ø¹ پردازش Ù
ÛâØ´ÙÙØ¯Ø Ù
ا Ù
ÛâØªÙØ§ÙÛÙ
ب٠آÙâÙØ§ در ÙØ± زÙ
اÙÛ Ø±Ø¬ÙØ¹ Ú©ÙÛÙ
. اÙ
ا Ù
ØªØºÛØ±Ùا تا زÙ
ا٠Ù
ÙØ¯Ø§Ø±Ø¯ÙÛ Ø¨Ø±Ø§Ø¨Ø± با undefined ÙØ³ØªÙد.
در ÙØ± د٠Ù
Ø«Ø§Ù Ø¨Ø§ÙØ§Ø alert بدÙÙ ÙÛÚ Ø§Ø±ÙØ±Û اجرا Ù
ÛâØ´ÙØ¯ ÚÙÙ Ù
ØªØºÛØ± phrase ÙØ¬Ùد دارد. اÙ
ا Ù
ÙØ¯Ø§Ø± Ø¢Ù ÙÙÙØ² ØªØ®ØµÛØµ Ø¯Ø§Ø¯Ù ÙØ´Ø¯Ù است پس undefined را ÙØ´Ø§Ù Ù
ÛâØ´ÙØ¯.
Ø±ÙØ´ IIFE
در Ú¯Ø°Ø´ØªÙØ ÚÙÙ ÙÙØ· var ÙØ¬Ùد داشت Ù ÙØ§Ø¨ÙÛØª رÙÛØª در بÙÙÚ© کد را ÙØ¯Ø§Ø±Ø¯Ø Ø¨Ø±ÙØ§Ù
ÙâÙÙÛØ³Ø§Ù Ø¨Ø±Ø§Û ØªÙÙÛØ¯ آ٠راÙÛ Ø§ÛØ¬Ø§Ø¯ Ú©Ø±Ø¯ÙØ¯. Ú©Ø§Ø±Û Ú©Ø±Ø¯ÙØ¯ را Â«ÙØ±Ø§Ø®ÙاÙÛ Ø¨ÙØ§ÙاصÙÙâÛ function expressionÙØ§ (immediately-invoked function expressions)» است (Ø®ÙØ§ØµÙ شد٠ب٠عÙÙØ§Ù IIFE).
Ø§Ù Ø±ÙØ²Ù از اÛÙ Ø±ÙØ´ ÙØ¨Ø§Ûد Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛ٠ا٠ا Ù ÛâØªÙØ§ÙÛØ¯ Ø¢ÙâÙØ§ را در اسکرÛپتâÙØ§Û ÙØ¯ÛÙ Û Ù¾ÛØ¯Ø§ Ú©ÙÛØ¯.
ÛÚ© IIFE اÛÙÚ¯ÙÙÙ Ø¨Ù ÙØ¸Ø± Ù ÛâØ±Ø³Ø¯:
(function() {
var message = "Ø³ÙØ§Ù
";
alert(message); // Ø³ÙØ§Ù
})();
اÛÙØ¬Ø§Ø ÛÚ© Function Expression Ø³Ø§Ø®ØªÙ Ø´Ø¯Ù Ù Ø¨ÙØ§ÙاصÙÙ ÙØ±Ø§Ø®ÙاÙÛ Ø´Ø¯Ù Ø§Ø³Øª. پس کد ÙØ± ÚÙ Ø³Ø±ÛØ¹âتر اجرا Ù ÛâØ´ÙØ¯ Ù Ù ØªØºÛØ±ÙØ§Û Ù Ø®ØµØµÙØµ Ø®ÙØ¯Ø´ را دارد.
Function Expression درÙÙ Ù¾Ø±Ø§ÙØªØ² ÙØ±Ø§Ø± Ú¯Ø±ÙØªÙ است (function {...}) ÚÙ٠زÙ
اÙÛ Ú©Ù Ù
ÙØªÙر Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت در کد اصÙÛ Ø¨Ø§ "function" Ù
ÙØ§Ø¬Ù Ù
ÛâØ´ÙØ¯Ø آ٠را ب٠عÙÙØ§Ù Ø§Ø¨ØªØ¯Ø§Û ÛÚ© Function Declaration ÙØ±Ø¶ Ù
ÛâÚ©ÙØ¯. اÙ
ا ÛÚ© Function Declaration Ø¨Ø§ÛØ¯ اسÙ
داشت٠باشد پس Ú©Ø¯Û Ø¨Ù Ø§ÛÙ Ø´Ú©Ù Ø§Ø±ÙØ± Ø§ÛØ¬Ø§Ø¯ Ù
ÛâÚ©ÙØ¯:
// Ø³Ø¹Û Ù
ÛâÚ©ÙÛÙ
ÛÚ© تابع را تعرÛÙ Ù Ø¨ÙØ§ÙاصÙÙ ÙØ±Ø§Ø®ÙاÙÛ Ú©ÙÛÙ
function() { // <-- SyntaxError: Function statements require a function name
var message = "Ø³ÙØ§Ù
";
alert(message); // Ø³ÙØ§Ù
}();
ØØªÛ اگر بگÙÛÛÙ : «٠شکÙÛ ÙÛØ³ØªØ Ø¨ÛØ§ÛÛØ¯ ÛÚ© اس٠اضاÙÙ Ú©ÙÛ٠» باز Ù٠کار ÙÙ ÛâÚ©ÙØ¯ ÚÙÙ Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت اجاز٠ÙÙ ÛâØ¯ÙØ¯ Ú©Ù Function DeclarationÙØ§ Ø¨ÙØ§ÙاصÙÙ ÙØ±Ø§Ø®ÙاÙÛ Ø´ÙÙØ¯:
// ب٠دÙÛÙ ÙØ¬Ùد Ù¾Ø±Ø§ÙØªØ²ÙØ§Û Ù¾Ø§ÛÛÙ Ø§Ø±ÙØ± سÛÙØªÚ©Ø³ Ø¯Ø±ÛØ§Ùت Ù
ÛâÚ©ÙÛÙ
function go() {
}(); // <-- را Ø¨ÙØ§ÙاصÙÙ ÙØ±Ø§Ø®ÙاÙÛ Ú©Ø±Ø¯ Function Declaration ÙÙ
ÛâØªÙØ§Ù
پس Ù¾Ø±Ø§ÙØªØ²ÙØ§Û Ø¯ÙØ± تابع ÛÚ© ترÙÙØ¯ است تا Ø¨Ù Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت ÙØ´Ø§Ù دÙÛ٠ک٠تابع در ز٠ÛÙÙâÛ Ø¹Ø¨Ø§Ø±ØªÛ Ø¯Ûگر ساخت٠شد٠٠از اÛ٠ر٠ÛÚ© Function Expression است: ب٠اس٠ÙÛØ§Ø²Û ÙØ¯Ø§Ø±Ø¯ Ù Ù ÛâØªÙØ§Ùد Ø¨ÙØ§ÙاصÙÙ ÙØ±Ø§Ø®ÙاÙÛ Ø´ÙØ¯.
Ø¨Ø±Ø§Û Ø§ÛÙÚ©Ù Ø¨Ù Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت بگÙÛÛÙ Ú©Ù Ù ÙØ¸Ùر٠ا٠ÛÚ© Function Expression است راÙâÙØ§Û دÛÚ¯Ø±Û Ø¯Ø± Ú©ÙØ§Ø± Ù¾Ø±Ø§ÙØªØ²Ùا ÙØ¬Ùد دارد:
// IIFE راÙâÙØ§ÛÛ Ø¨Ø±Ø§Û Ø§ÛØ¬Ø§Ø¯
(function() {
alert("Ù¾Ø±Ø§ÙØªØ²ÙØ§Û Ø¯ÙØ± تابع");
})();
(function() {
alert("Ù¾Ø±Ø§ÙØªØ²ÙØ§Û Ø¯ÙØ± تÙ
اÙ
عبارت");
}());
!function() {
alert("عÙ
Ùگر Ø¨ÛØªÛ NOT عبارت را آغاز Ù
ÛâÚ©ÙØ¯");
}();
+function() {
alert("عÙ
Ùگر Ù
ثبت ÛگاÙ٠عبارت را آغاز Ù
ÛâÚ©ÙØ¯");
}();
در ØªÙ Ø§Ù Ù ÙØ§Ø±Ø¯ Ø¨Ø§ÙØ§ ٠ا ÛÚ© Function Expression تعرÛÙ Ù ÛâÚ©ÙÛ٠٠آ٠را Ø¨ÙØ§ÙاصÙÙ ÙØ±Ø§Ø®ÙاÙÛ Ù ÛâÚ©ÙÛÙ . Ø¨ÛØ§ÛÛØ¯ Ø¯ÙØ¨Ø§Ø±Ù ب٠اÛÙ Ù ÙØ¶Ùع ØªÙØ¬Ù Ú©ÙÛÙ : Ø§Ù Ø±ÙØ²Ù ÙÛØ¬ دÙÛÙÛ Ø¨Ø±Ø§Û ÙÙØ´ØªÙ ÚÙÛÙ Ú©Ø¯Û ÙØ¬Ùد ÙØ¯Ø§Ø±Ø¯.
Ø®ÙØ§ØµÙ
بÛÙ var Ù let/const Ø¯Ù ØªÙØ§Ùت اصÙÛ ÙØ¬Ùد دارد:
- Ù
ØªØºÛØ±ÙاÛ
varÙ ØØ¯ÙØ¯ÛØª بÙÙÚ© ÙØ¯Ø§Ø±ÙØ¯Ø ÙØ§Ø¨ÙÛØª رÙÛØª Ø¢ÙâÙØ§ ÛØ§ Ù ØØ¯Ùد ب٠تابع Ú©ÙÙÙÛ Ø§Ø³Øª ÛØ§ اگر Ø¨ÛØ±Ù٠از تابع تعرÛÙ Ø´Ø¯Ù Ø¨Ø§Ø´ÙØ¯ Ù ØØ¯Ùد ب٠گÙÙØ¨Ø§Ù است. - تعرÛÙ Ù
ØªØºÛØ± با
varدر Ø§Ø¨ØªØ¯Ø§Û Ø§Ø¬Ø±Ø§Û ØªØ§Ø¨Ø¹ پردازش Ù ÛâØ´ÙØ¯ (ÛØ§ Ø¨Ø±Ø§Û Ù ØªØºÛØ±ÙØ§Û Ú¯ÙÙØ¨Ø§Ù در Ø§Ø¨ØªØ¯Ø§Û Ø§Ø³Ú©Ø±Ûپت).
ÛÚ© ØªÙØ§Ùت Ø¬Ø²Ø¦Û Ø¯Ûگر در رابط٠با Ø´ÛØ¡ Ú¯ÙÙØ¨Ø§Ù ÙØ¬Ùد دارد ک٠در ÙØµÙ Ø¨Ø¹Ø¯Û Ø¢Ù Ø±Ø§ Ø¨ÛØ§Ù Ù ÛâÚ©ÙÛÙ .
اÛÙ ØªÙØ§ÙتâÙØ§Û در اکثر اÙÙØ§Øª var را ÙØ³Ø¨Øª ب٠let بدتر جÙÙÙ Ù
ÛâØ¯ÙÙØ¯. Ù
ØªØºÛØ±ÙØ§Û Ø³Ø·Ø Ø¨ÙÙÚ© ÚÛØ² Ø®ÛÙÛ Ø®ÙØ¨Û ÙØ³ØªÙد. ب٠اÛ٠دÙÛ٠است Ú©Ù Ø®ÛÙÛ ÙØ¨ÙâØªØ± let در Ø§Ø³ØªØ§ÙØ¯Ø§Ø±Ø¯ Ù
عرÙÛ Ø´Ø¯ Ù ØØ§Ùا Ø¨Ø±Ø§Û ØªØ¹Ø±ÛÙ Ù
ØªØºÛØ± Ø±ÙØ´ اصÙÛ Ø§Ø³Øª (در Ú©ÙØ§Ø± const).
ÙØ¸Ø±Ø§Øª
<code>Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯Ø Ø¨Ø±Ø§Û ÚÙØ¯Û٠خط â کد را درÙ٠تگ<pre>ÙØ±Ø§Ø± دÙÛØ¯Ø Ø¨Ø±Ø§Û Ø¨ÛØ´ از د٠خط کد â Ø§Ø² ÛÚ© جعبÙÙ Ø´ÙÛ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯. (plnkrØ jsbinØ codepenâ¦)