Why Global variables Shouldn’t Be Much Global
Robin Jangu
Posted On: April 9, 2018
27664 Views
2 Min Read
One of the biggest blunder a JS developer can do while writing a code is declaring unnecessary global variables. Global variables are extremely helpful for the programmers but if not used carefully would rob the speed and efficiency of any browser.
Short note
There are mainly two types of variables that are used in JS, Local and Global. Local variables are defined and used within a function whereas Global variables are defined for the function window. In short till the time the code doesn’t terminate Global variable will be present lurking in the background.
Effect on Memory
Variables storing feeble data won’t be too critical ,however if you store a lot of data on it it’ll choke your bandwidth and definitely threaten the page efficiency. Too much of data stored as cache slows the speed of your browser resulting in high latency, caches are website’s data that is stored and used when you revisit the site time and again.
Solution
We can’t deny the usefulness of global variables, however its best to try using local variables and use globals ones only in situations where it can’t be helped. However it’s important to change the value of the variables to NULL after using.
1 2 3 |
function Avengers() { var hero = "Nick Fury"; } |
Accidental global variables are created when you assign a value to a variable that hasn’t been declared, by default it will be a Global variable.
1 2 3 |
function Avengers() { hero = "Nick Fury"; } |
“Use strict”; is a brilliant way to keep the Global variables in check, just writing this magical command will solve half of the problems. Mostly used by developers, it doesn’t allow the menacing accidental variables by giving error if the variable hasn’t been declared.
1 2 3 4 5 6 7 8 9 |
<h2>Global "use strict" declaration.</h2> <script> "use strict"; Avengers(); function Avengers() { hero = "Nick Fury"; // This will cause an error (hero is not defined) } </script> |
Conclusion
The use of global variables isn’t that global anymore. In the next blog we will further explore other memory leakage problems.
Got Questions? Drop them on LambdaTest Community. Visit now