يتم تعريف المتغيرات العالمية خارج وظيفة لسهولة الوصول في جميع أنحاء البرنامج، في حين يتم تخزين المتغيرات المحلية داخل دالة باستخدام `var` للاستخدام فقط في تلك الوظيفة في [نطاق](https://developer.mozilla.org/en-US/docs/Glossary/Scope) . إذا قمت بتعريف متغير بدون استخدام `var` ، حتى لو كان داخل دالة ، فسيظل ينظر إليه على أنه عالمي:
* [أنت لا تعرف JavaScript: النطاقات والإغلاق](https://github.com/getify/You-Dont-Know-JS/tree/master/scope%20%26%20closures)
معلومات اضافية:
* [JavaScript Best Practices: Avoid Globals](http://www.w3.org/wiki/JavaScript_best_practices#Avoid_globals)
## \* [ما الفرق بين متغير شامل وإطار window.variable في javascript؟](https://stackoverflow.com/questions/6349232/whats-the-difference-between-a-global-var-and-a-window-variable-in-javascript)
نطاق متغيرات جافا سكريبت إما عالمي أو محلي. يتم الإعلان عن المتغيرات العالمية خارج الوظيفة وقيمتها قابلة للوصول / للتغيير في جميع أنحاء البرنامج.
يجب دائمًا استخدام **var** لإعلام المتغيرات الخاصة بك (لإجراء محليًا) وإلا فسيتم تثبيتها على GLOBALLY
كن حذراً مع المتغيرات العالمية لأنها محفوفة بالمخاطر. معظم الوقت يجب عليك استخدام إغلاق لإعلان المتغيرات الخاصة بك. مثال:
` (function(){
var myVar = true;
})();
`
#### معلومات اكثر:
* [JavaScript Best Practices: Avoid Globals](http://www.w3.org/wiki/JavaScript_best_practices#Avoid_globals)
* [المتغيرات العالمية سيئة](http://c2.com/cgi/wiki?GlobalVariablesAreBad)