Hacker News new | ask | show | jobs
by Kiro 4064 days ago
What is proper lexical scoping? Does JavaScript get it right?
1 comments

No. Javascript gets it horribly wrong without "var", still terribly wrong with "var", and somewhat better with "let".
I don't understand what let has to do with functional programming though (enclosing a variable within if () {} instead of function block etc). Do you mind elaborating?
The question wasn't about functional programming per se, but about lexical scope.

"let" keyword in ES6 allows Javascript to have "lexical" style scoping (with some caveats due to JS legacy).

That said, several ways of scoping a variable can be had in functional programming. Have a look here for some more explanation with regards to Common Lisp:

http://stackoverflow.com/questions/463463/dynamic-and-lexica...

The "this" keyword is also a mess. I wonder when well be able to start using the new arrow-syntax lambdas everywhere.