Is this the optimal check? `typeof` also gives `'object'` for `null`, `[]`, `new String('foo')`, etc.