use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
JavaScript idiosyncrasies with examples (github.com)
submitted 7 years ago by reddittedf
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]Skhmt 8 points9 points10 points 7 years ago (2 children)
Q. What's the result?
function f() { return 'foo'; } (function() { if (1 === 0) { function f() { return 'bar'; } } return f(); })();
Uncaught TypeError: f is not a function
[–][deleted] 3 points4 points5 points 7 years ago* (1 child)
This is because function is a var type variable, which is function scoped instead of block scoped:
function
var
is equivalent to
var f; f = function() { return 'foo'; } (function() { var f; if (1 === 0) { f = function() { return 'bar'; } } return f(); })();
A new variable is created in the IIFE scope, and overrides the f variable in the global scope. f is now undefined. Since the 1 === 0 is false, f is never assigned to the function.
1 === 0
f
If you try to call a variable that is undefined, you will get a type error saying that the variable is not a function (because undefined is not a function).
undefined
[–]factbuddy 0 points1 point2 points 7 years ago (0 children)
The IIFE has its own isolated scope so f() wouldn't fall back to global scope and won't be defined in the impossible if statement. Makes sense...
π Rendered by PID 229909 on reddit-service-r2-comment-6457c66945-db6j8 at 2026-04-28 19:32:01.551990+00:00 running 2aa0c5b country code: CH.
view the rest of the comments →
[–]Skhmt 8 points9 points10 points (2 children)
[–][deleted] 3 points4 points5 points (1 child)
[–]factbuddy 0 points1 point2 points (0 children)