In reply to @cy83rn0153 "how can they define": if you use a `const`, you are basically telling the compiler "I already know what the value of this variable is. Please bake it into the binary at compilation time" if you use a `let`, you are telling it "I don't know what the value of this variable is yet, but once I do (at runtime), don't let me mutate it" in both of these cases, the actual scope of the variable is determined on _where_ you used `const` or `let`, and only valid within that specific scope (or inner scopes). It's true that using a `const` anywhere _but_ the global scope is not something you see very often, but this is only because of programming practices and not because of any technical reason