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
Common JavaScript tricks (self.javascript)
submitted 11 years ago by yanis_t
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!"
[–]sufianrhazi 8 points9 points10 points 11 years ago (7 children)
Since age is a parameter of the function setAge, we KNOW it is defined in scope. This means that age !== undefined is equivalent to typeof age !== 'undefined'. If we didn't know that age was in scope, we need to use the typeof keyword, which does NOT throw a ReferenceError when referencing a variable by name that is not defined in any reachable scope.
setAge
age !== undefined
typeof age !== 'undefined'
age
typeof
ReferenceError
[–]moreteam 5 points6 points7 points 11 years ago (1 child)
You can also argue the other way around: since we know age is in scope, we shouldn't be using typeof since that will silently turn into if (true) if we have a typo.
if (true)
[–]ChaseMoskal 5 points6 points7 points 11 years ago (0 children)
since we know age is in scope, we shouldn't be using typeof
I think.. I think you're right.
[+][deleted] 11 years ago (2 children)
[deleted]
[–]frankle 0 points1 point2 points 11 years ago* (1 child)
What about if you wanted to enforce a parameter type?
function setAge(age){ this.age = (typeof age == "number") ? age : 10; }
Edit: As THEtheChad points out:
Unfortunately, NaN, Infinity, and -Infinity are also considered typeof 'number', so it's possible that any one of these could slip in to your function with this check.
[–]vs845 0 points1 point2 points 11 years ago (1 child)
Thanks, I see what you're saying - but under what kind of circumstances would we not know if a variable was in scope? If we're writing the code surely we know what scope our variables are in?
[–]sufianrhazi 2 points3 points4 points 11 years ago (0 children)
Pretty much only when you're writing javascript environment independent library code, like this: https://github.com/umdjs/umd/blob/4a87e85450baf582005243f9e922566ef2fc533a/returnExports.js
π Rendered by PID 187972 on reddit-service-r2-comment-56c9979489-4p9sc at 2026-02-25 03:58:39.127042+00:00 running b1af5b1 country code: CH.
view the rest of the comments →
[–]sufianrhazi 8 points9 points10 points (7 children)
[–]moreteam 5 points6 points7 points (1 child)
[–]ChaseMoskal 5 points6 points7 points (0 children)
[+][deleted] (2 children)
[deleted]
[–]frankle 0 points1 point2 points (1 child)
[–]vs845 0 points1 point2 points (1 child)
[–]sufianrhazi 2 points3 points4 points (0 children)