i have been programming javascript little while now, , still not quite sure if being lazy or not. have lot of:
if( typeof( something) === 'undefined' ){   // .. }   however, becomes verbose. example, doing:
var redirecturls = hotplate.get('hotcoreauth/redirecturls/success') || {};   that's because in following lines treating redirecturls object, although might not defined @ (the function might return undefined).
is there "best practice" cheatsheet? wrote above lazy? it's alternative cumbersome:
var redirecturls = hotplate.get('hotcoreauth/redirecturls/success'); if( typeof( redirecturls ) === 'undefined' ){   redirecturls = {} }   i realise shortcut less robust, again, people either have set value, or not.
ideas?
merc.
when using "shortcut", equivalent following:
var redirecturls = hotplate.get('hotcoreauth/redirecturls/success'); if (!redirecturls) redirecturls = {};   the specification (ecma-262) states logical or operator (||) tests whether first expression (in case, function call) coerces true or not -- if coerces true, return first expression, else return second one.
it states coerces true , false (§9.2 - note isn't given verbatim):
false:
- the numbers +0, -0, , nan
 - the empty string (
 "")falsenullundefinedtrue: else (including stuff
new boolean(false))
so, if don't mind letting numbers, strings or value true through, logical or "shortcut" ok. note "verbose" code might break if redirecturls null:
var redirecturls = null; if (typeof redirecturls === 'undefined') {   redirecturls = {}; } redirecturls.test = '1'; // typeerror: cannot set property 'test' of null      
Comments
Post a Comment