Hey all! I've been taking an online development course for a few weeks and have working on JavaScript lately. But I've been struggling with the idea of scope.
Can anyone help me understand what scope of variables is in JavaScript?
Many thanks!
Hey all! I've been taking an online development course for a few weeks and have working on JavaScript lately. But I've been struggling with the idea of scope.
Can anyone help me understand what scope of variables is in JavaScript?
Many thanks!
For further actions, you may consider blocking this person and/or reporting abuse
Sharon428931 -
Sharon428931 -
Damnbro870 -
Sharon428931 -
Top comments (2)
I like to think the scope as an "area". An area where a variable exists with a given value.
If someone asks me "what is the scope of a variable?", I imagine they try to ask me "where does this variable exists?"
Take this example.
The area of the code where
colorhas the valuerebeccapurpleis the block inside theprocessfunction. It doesn't exists anywhere else. In fact, that piece of code will throw aReferenceErrortelling youcoloris not defined.There are different types of scope that people mention a lot:
Global scope: Means the whole program. A variable in the global scope is one that you can access in the whole codebase.
Function scope: Means the body of a function. When someone says "this variable doesn't leave the function scope", they try to tell you the variable doesn't exists outside the function.
Block scope: This I need to show you.
Those curly braces form a
block, and it has it's own scope. What's interesting is that even thought is not a function, the variablecoloronly exists with the valuehotpinkinside those curly braces.When you think about the scope of a variable, just try to ask yourself "where does this variable exists?"
Ok so a little on this. I am going to ignore
varfor this it's special and for another time.So let's talk about block scope. When I am writing something in a file there is a
globallevel outside all functions, once I enter a function I am inside the scope of that function, however it doesn't end there, say I enter a statement block likeif (something) { statement block scope }now comes the interesting part...