typeof null

John J Barton johnjbarton at johnjbarton.com
Wed May 9 14:39:37 PDT 2012


On Wed, May 9, 2012 at 2:22 PM, Brendan Eich <brendan at mozilla.org> wrote:
> As Crock said, the problem programmers face is "I have a value, I want to
> treat it as an object and get a property (call a method, etc.). How do I
> test is-this-an-object so that I can use dot without worrying about that
> throwing right away on null left-hand side?"

Yes, but ... why not
   if (foo) {
      foo.bar()
   }
or one of its variants? I suppose that
  if (typeof foo === 'object') { ...
helps in the case the your caller sent a string etc, but if this is
your goal, then why not use
  if (foo && foo.bar) {
and avoid other left-hand side problems?

(FWIW I don't really think this is a big deal one way or another).

jjb

>
> /be
>
> John J Barton wrote:
>>
>> On Tue, May 8, 2012 at 6:07 PM, Brendan Eich<brendan at mozilla.org>  wrote:
>>>
>>> Object class reflection is frowned upon in Smalltalk for a reason. We
>>> want
>>> protocols, structural conventions -- not nominal type tags. Or so I
>>> think!
>>
>>
>> Perhaps it would be helpful if someone made the case for typeof null
>> === 'null'.
>>
>> To me typeof null === 'object' is fine. It makes null a value in the
>> space of 'object'. In practice I see 'null' used to mean "I know this
>> reference (usually an argument) should be an object; I want to pass
>> nothing but signal that I really did mean to pass nothing." The status
>> quo allows this and it seems enough work for null to do for us.
>>
>> Are there new things I can do if I now have a new answer to the
>> 'typeof' question?
>>
>> jjb
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>


More information about the es-discuss mailing list