We know that what global variables or constants are, these are fields which are accessible application wide. In java, it is done usually done using defining “public static” fields. Here by adding final keyword, we can change the global variable to global constant. So easy, right?
But what about javascript? These scripting languages don’t have these access modifiers etc., so what are our options?
I faced a similar situation in my regular work hours and came to know that defining global variable in traditional javascript way can break in production code. Traditional way is:
var iAmGlobal = "some val"; //Global variable declaration //Any place in other part of code function doSomething() { //iAmGlobal = "changed value"; alert(iAmGlobal); //I am accessible here too !! }
These type are declaration are in practice from long time and for some less fortunate mates, it result in famous “Object doesn’t support this property or method” error in java script. If you remember there is an IE bug with “var a = foo” only declaring a global for file scope. This is an issue with IE’s notorious broken interpreter.
So, what’s correct way to declare global variable in javascript then?
Correct way to declare global variable in JavaScript
The proper way is to use window object. And use the syntax like this:
var window.iAmGlobal = "some val"; //Global variable declaration with window. //Any place in other part of code function doSomething() { alert(window.iAmGlobal); //I am accessible here too !! //OR alert(iAmGlobal); //I am accessible here too !! }
By defining globals this way, you will make JavaScript more robust and reliable.
Important points:
- Define global variables with window keyword in form of “window.VAR_NAME”
- You can access the variable with “window.VAR_NAME” or directly “VAR_NAME”
- Do not use other variables with same name otherwise it may cause unwanted results
That’s all folks on this topic.
Further reading: http://stackoverflow.com/questions/4862193/javascript-global-variables
Happy learning !!
Leave a Reply