I'm sure you know this, but Number 0 is a falsy value in javascript.
For me thats expected behaviour, but i can understand why people not
as familar to the library would be confused.

If i wanted to do >>> 0 || 'a';

i'd do it

>>> foo = (foo === 0) ? 0 : a;

for me its still readable and acceptable.

On Feb 19, 9:48 am, Thomas Fuchs <[EMAIL PROTECTED]> wrote:
> Heya Tobie,
>
> We should first discriminate where we actually need this, and where a
> = a || default is sufficient--
> and then decide if we need a shortcut (my guess is that we probably
> want one).
>
> I don't really like the $default or $d name. $D is better, but also
> not that perfect.
> Maybe we can add something to the Prototype object, like Prototype.K.
> Don't really have a clue here.
>
> I think the default value to assign should be optional, and default
> to "null":
>
> somethingSomething = function(value){
>    return value === undefined ? (arguments[1] === undefined ? null :
> arguments[1]) : value;
>
> }
>
> btw, one of the most annoying things on the "evaluates false" side of
> things for me is this:
>
>  >>> 1 || 'a'
> 1
>  >>> 0 || 'a'
> "a"
>
> In Ruby, this does what you think it should do:
>
> irb(main):001:0> 1 || 'a'
> => 1
> irb(main):002:0> 0 || 'a'
> => 0
>
> Best,
> Thomas
>
> Am 19.02.2007 um 07:01 schrieb Tobie Langel:
>
>
>
> > Hi all,
>
> > I find myself writing code like that the whole time:
>
> >     example = example === undefined ? null : example;
>
> > We could imagine the following utility function:
>
> >     $default = function(value, default) {
> >       return value === undefined ? default : value;
> >     }
>
> > So that the above could be shortened to:
>
> >     example = $default(example, null);
>
> > We could even decide to shorten it to $d:
>
> >     example = $d(example, null);
>
> > I'm not 100% sure I like it... so I'm submitting it here for
> > discussion before eventually posting a patch.
>
> > Regards,
>
> > Tobie


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Prototype: Core" group.
To post to this group, send email to prototype-core@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/prototype-core?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to