Ø´ÛØ¡ Ú¯ÙÙØ¨Ø§Ù Ù ØªØºÛØ±Ùا ٠ع٠ÙÚ©Ø±Ø¯ÙØ§ÛÛ Ø±Ø§ ارائ٠٠ÛâØ¯ÙØ¯ ک٠در ÙØ±â٠کاÙÛ Ø¯Ø± دسترس ÙØ³ØªÙد. Ø¨Ù Ø·ÙØ± Ù¾ÛØ´âÙØ±Ø¶Ø Ù ÙØ§Ø±Ø¯Û ک٠در Ø²Ø¨Ø§Ù ÛØ§ Ù ØÛØ·(environment) Ø³Ø§Ø®ØªÙ Ø´Ø¯Ù Ø§ÙØ¯.
در Ù
Ø±ÙØ±Ú¯Ø± window ÙØ§Ù
Ø¯Ø§Ø±Ø¯Ø Ø¨Ø±Ø§Û Node.js global Ø§Ø³ØªØ Ø¨Ø±Ø§Û Ù
ØÛØ·âÙØ§Û دÛگر Ù
Ù
ک٠است ÙØ§Ù
Û Ù
ØªÙØ§Ùت داشت٠باشد.
Ø§Ø®ÛØ±Ø§Ù globalThis ب٠عÙÙØ§Ù ÙØ§Ù
Ø§Ø³ØªØ§ÙØ¯Ø§Ø±Ø¯ Ø´Ø¯Ù Ø¨Ø±Ø§Û ÛÚ© Ø´ÛØ¡ Ú¯ÙÙØ¨Ø§Ù ب٠زبا٠اضاÙ٠شد٠است Ú©Ù Ø¨Ø§ÛØ¯ در ÙÙ
Ù Ù
ØÛØ·âÙØ§ Ù¾Ø´ØªÛØ¨Ø§ÙÛ Ø´ÙØ¯. در ÙÙ
Ù Ù
Ø±ÙØ±Ú¯Ø±ÙØ§Û Ø§ØµÙÛ Ù¾Ø´ØªÛØ¨Ø§ÙÛ Ù
ÛâØ´ÙØ¯.
Ù
ا با ÙØ±Ø¶ اÛÙÚ©Ù Ù
ØÛØ· Ù
ا ÛÚ© Ù
Ø±ÙØ±Ú¯Ø± Ø§Ø³ØªØ Ø§Ø² window âÚ©ÙÛÙ
. اگر اسکرÛپت Ø´Ù
ا Ù
Ù
ک٠است در Ù
ØÛØ·âÙØ§Û دÛگر اجرا Ø´ÙØ¯Ø Ø¨ÙØªØ± است Ø¨Ù Ø¬Ø§Û Ø¢Ù Ø§Ø² globalThis Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯.
Ø¯Ø³ØªØ±Ø³Û Ù Ø³ØªÙÛ٠ب٠ت٠ا٠ÙÛÚÚ¯ÛâÙØ§Û Ø´ÛØ¡ Ú¯ÙÙØ¨Ø§Ù Ø§Ù Ú©Ø§Ù Ù¾Ø°ÛØ± است:
alert("Ø³ÙØ§Ù
");
// Ûکسا٠است با
window.alert("Ø³ÙØ§Ù
");
در Ù
Ø±ÙØ±Ú¯Ø±Ø ØªÙØ§Ø¨Ø¹ Ù Ù
ØªØºÛØ±ÙØ§Û Ú¯ÙÙØ¨Ø§Ù تعرÛ٠شد٠با var (ÙÙ let/const!) ب٠ÙÛÚÚ¯Û Ø´ÛØ¡ Ú¯ÙØ¨Ø§Ù تبدÛÙ Ù
ÛâØ´ÙÙØ¯:
var gVar = 5;
alert(window.gVar); // 5 (ب٠ÛÚ© ÙÛÚÚ¯Û Ø§Ø² Ø´ÛØ¡ Ú¯ÙÙØ¨Ø§Ù تبدÛ٠شد)
Function declarationÙØ§ (عبارات Ø¯Ø§Ø±Ø§Û Ú©ÙÙ
Ù Ú©ÙÛØ¯Û function در Ø¬Ø±ÛØ§Ù کد اصÙÛØ ÙÙ Function expressionÙØ§) ÙÛØ² ÙÙ
ÛÙ ØªØ£Ø«ÛØ± را دارد.
ÙØ·Ùا ب٠آ٠تکÛÙ ÙÚ©ÙÛØ¯! اÛÙ Ø±ÙØªØ§Ø± Ø¨Ù Ø¯ÙØ§ÛÙ Ø³Ø§Ø²Ú¯Ø§Ø±Û ÙØ¬Ùد دارد. اسکرÛپتâÙØ§Û ٠در٠از ٠اÚÙÙâÙØ§Û Ø¬Ø§ÙØ§âاسکرÛپت در Ù ÙØ§Ø±Ø¯Û Ú©Ù ÚÙÛÙ ÚÛØ²Û Ø§ØªÙØ§Ù ÙÙ ÛâØ§ÙØªØ¯ Ø§Ø³ØªÙØ§Ø¯Ù Ù ÛâÚ©ÙÙØ¯.
اگر از let Ø¨Ù Ø¬Ø§Û Ø¢Ù Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ
Ø ÚÙÛÙ Ø§ØªÙØ§ÙÛ ÙÙ
ÛâØ§ÙØªØ¯:
let gLet = 5;
alert(window.gLet); // undefined (ب٠ÛÚ© ÙÛÚÚ¯Û Ø§Ø² Ø´ÛØ¡ Ú¯ÙÙØ¨Ø§Ù تبدÛÙ ÙÙ
ÛâØ´ÙØ¯)
اگر Ù ÙØ¯Ø§Ø± Ø¢ÙÙØ¯Ø± Ù Ù٠است Ú©Ù Ù ÛâØ®ÙØ§ÙÛØ¯ آ٠را در Ø³Ø·Ø Ø¹Ù ÙÙ Û Ø¯Ø± دسترس ÙØ±Ø§Ø± دÙÛØ¯Ø آ٠را ٠ستÙÛ٠ا٠ب٠عÙÙØ§Ù ÛÚ© ÙÛÚÚ¯Û Ø¨ÙÙÛØ³Ûد:
// Ø§Ø·ÙØ§Ø¹Ø§Øª کاربر ÙØ¹ÙÛ Ø±Ø§ Ú¯ÙÙØ¨Ø§Ù Ú©ÙÛØ¯Ø تا ÙÙ
٠اسکرÛپتâÙØ§ Ø¨Ù Ø¢Ù Ø¯Ø³ØªØ±Ø³Û Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÙØ¯
window.currentUser = {
name: "عÙÛ"
};
// جاÛÛ Ø¯Ûگر در کد
alert(currentUser.name); // عÙÛ
// ÛØ§ اگر ÛÚ© Ù
ØªØºÛØ± Ù
ØÙÛ Ø¨Ø§ ÙØ§Ù
"currentUser" دارÛÙ
// آ٠را Ø¨Ù ØµØ±Ø§ØØª از window Ø¯Ø±ÛØ§Ùت Ú©ÙÛØ¯ (اÛÙ
Ù!)
alert(window.currentUser.name); // عÙÛ
با اÛÙ ÙØ¬ÙØ¯Ø Ø§Ø³ØªÙØ§Ø¯Ù از Ù ØªØºÛØ±ÙØ§Û Ú¯ÙÙØ¨Ø§Ù ع٠ÙÙ Ø§Ù Ø¯ÙØ³Ø±Ø¯ Ú©ÙÙØ¯Ù است. Ø¨Ø§ÛØ¯ تا ØØ¯ Ù Ù Ú©Ù Ù ØªØºÛØ±ÙØ§Û Ú¯ÙÙØ¨Ø§Ù ÙØ¬Ùد داشت٠باشد. طراØÛ کد ک٠در Ø¢Ù ÛÚ© تابع Ù ØªØºÛØ±ÙØ§Û âÙØ±ÙدÛâ Ø¯Ø±ÛØ§ÙØª Ù ÛâÚ©ÙØ¯ Ù âÙØªÛجÙâ Ø®Ø§ØµÛ را Ø§ÛØ¬Ø§Ø¯ Ù ÛâÚ©ÙØ¯Ø Ø¨Ù ÙØ¶ÙØØ ک٠تر ٠ستعد خطا Ù ÛâØ´ÙØ¯ Ù Ø¢Ø²Ù Ø§ÛØ´ Ø¢Ù Ø±Ø§ØØª تر از Ù ÙØ§Ø±Ø¯Û است ک٠از Ù ØªØºÛØ±ÙØ§Û Ø®Ø§Ø±Ø¬Û ÛØ§ Ú¯ÙÙØ¨Ø§Ù Ø§Ø³ØªÙØ§Ø¯Ù Ù ÛâÚ©ÙÙØ¯.
âØ§Ø³ØªÙØ§Ø¯Ù Ø¨Ø±Ø§Û Ù¾ÙÛâÙÛÙâÙØ§
٠ا از Ø´ÛØ¡ Ú¯ÙÙØ¨Ø§Ù Ø¨Ø±Ø§Û Ø¢Ø²Ù Ø§ÛØ´ Ù¾Ø´ØªÛØ¨Ø§ÙÛ Ø§Ø² ÙÛÚÚ¯ÛâÙØ§Û Ù Ø¯Ø±Ù Ø²Ø¨Ø§Ù Ø§Ø³ØªÙØ§Ø¯Ù Ù ÛâÚ©ÙÛÙ .
ب٠عÙÙØ§Ù Ù
Ø«Ø§ÙØ آزÙ
Ø§ÛØ´ اÛÙÚ©Ù Ø¢ÛØ§ ÛÚ© Ø´ÛØ¡ Promise ÙØ¬Ùد دارد (در Ù
Ø±ÙØ±Ú¯Ø±ÙØ§Û ÙØ¯ÛÙ
Û ÙØ§ÙØ¹Ø§Ù ÙØ¬Ùد ÙØ¯Ø§Ø±Ø¯):
if (!window.Promise) {
alert("Ù
Ø±ÙØ±Ú¯Ø± Ø´Ù
ا ÙØ§Ùعا ÙØ¯ÛÙ
Û Ø§Ø³Øª!");
}
اگر ÙÛÚ Ú©Ø¯Ø§Ù ÙØ¬Ùد ÙØ¯Ø§Ø´Øª (ب٠عÙÙØ§Ù Ù Ø«Ø§ÙØ ٠ا در ÛÚ© Ù Ø±ÙØ±Ú¯Ø± ÙØ¯ÛÙ Û ÙØ³ØªÛÙ )Ø Ù ÛâØªÙØ§ÙÛÙ âpolyfillsâ Ø§Ûجاد Ú©ÙÛÙ : اضاÙÙ Ú©Ø±Ø¯Ù ØªÙØ§Ø¨Ø¹Û Ú©Ù ØªÙØ³Ø· Ù ØÛØ· Ù¾Ø´ØªÛØ¨Ø§ÙÛ ÙÙ ÛâØ´ÙÙØ¯Ø ا٠ا در Ø§Ø³ØªØ§ÙØ¯Ø§Ø±Ø¯ Ù Ø¯Ø±Ù ÙØ¬Ùد Ø¯Ø§Ø±ÙØ¯.
if (!window.Promise) {
window.Promise = ... // Ù¾ÛØ§Ø¯Ù Ø³Ø§Ø²Û Ø³ÙØ§Ø±Ø´Û ÙÛÚÚ¯Û Ù
در٠زباÙ
}
Ø®ÙØ§ØµÙ
-
Ø´ÛØ¡ Ú¯ÙÙØ¨Ø§Ù Ù ØªØºÛØ±ÙاÛÛ Ø±Ø§ ÙÚ¯Ù Ù ÛâØ¯Ø§Ø±Ø¯ Ú©Ù Ø¨Ø§ÛØ¯ در ÙÙ ÙâØ¬Ø§ در دسترس Ø¨Ø§Ø´ÙØ¯.
اÛÙ Ø´Ø§Ù Ù Ù¾ÛØ´ÙرضâÙØ§Û Ø¬Ø§ÙØ§âاسکرÛÙ¾ØªØ Ù Ø§ÙÙØ¯
ArrayÙ Ù ÙØ§Ø¯Ûر خاص Ù ØÛØ·Ø Ù Ø§ÙÙØ¯window.innerHeightâ Ø§Ø±ØªÙاع Ù¾ÙØ¬Ø±Ù در Ù Ø±ÙØ±Ú¯Ø± است. -
Ø´ÛØ¡ Ú¯ÙÙØ¨Ø§Ù Ø¯Ø§Ø±Ø§Û ÙØ§Ù ع٠ÙÙ Û
globalThisاست.⦠ا٠ا Ø¨ÛØ´ØªØ± اÙÙØ§Øª با ÙØ§Ù âÙØ§Û خاص Ù ØÛØ· ÙØ¯ÛÙ Û âold-schoolâ ØÙ Ø§ÙÙØ¯
window(Ù Ø±ÙØ±Ú¯Ø±) Ùglobal(Node.js) ÙØ§Ù ÛØ¯Ù Ù ÛâØ´ÙØ¯. -
٠ا Ø¨Ø§ÛØ¯ Ù ÙØ§Ø¯Ûر را در Ø´ÛØ¡ Ú¯ÙÙØ¨Ø§Ù تÙÙØ§ در ØµÙØ±ØªÛ Ø°Ø®ÛØ±Ù Ú©ÙÛÙ Ú©Ù ÙØ§ÙØ¹Ø§Ù Ø¨Ø±Ø§Û Ù¾Ø±ÙÚÙâ٠ا ع٠ÙÙ Û Ø¨Ø§Ø´Ø¯. ٠تعداد Ø¢ÙÙØ§ را Ø¨Ù ØØ¯Ø§Ù٠برساÙÛÙ .
-
در Ù Ø±ÙØ±Ú¯Ø±Ø ٠گر اÛÙک٠از ٠اÚÙÙâÙØ§ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ Ø ØªÙØ§Ø¨Ø¹ Ù Ù ØªØºÛØ±ÙØ§Û Ø¹Ù ÙÙ Û Ø§Ø¹ÙØ§Ù شد٠با
varب٠ÛÚ© ÙÛÚÚ¯Û Ø´ÛØ¡ Ú¯ÙÙØ¨Ø§Ù تبدÛÙ Ù ÛâØ´ÙÙØ¯. -
Ø¨Ø±Ø§Û Ø§ÛÙک٠کد ٠ا در Ø¢ÛÙØ¯Ù اÛÙ Ù Ù ÙØ§Ø¨Ù ÙÙÙ Ø¨Ø§Ø´Ø¯Ø Ø¨Ø§ÛØ¯ ٠ستÙÛÙ Ø§Ù Ø¨Ù Ø®ÙØ§Øµ Ø´ÛØ¡ Ú¯ÙÙØ¨Ø§Ù ب٠عÙÙØ§Ù
window.xØ¯Ø³ØªØ±Ø³Û Ù¾ÛØ¯Ø§ Ú©ÙÛÙ .
ÙØ¸Ø±Ø§Øª
<code>Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯Ø Ø¨Ø±Ø§Û ÚÙØ¯Û٠خط â کد را درÙ٠تگ<pre>ÙØ±Ø§Ø± دÙÛØ¯Ø Ø¨Ø±Ø§Û Ø¨ÛØ´ از د٠خط کد â Ø§Ø² ÛÚ© جعبÙÙ Ø´ÙÛ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯. (plnkrØ jsbinØ codepenâ¦)