You do not have permission to delete messages in this group
Copy link
Report message
Sign in to report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
Stefan Ram wrote:
> |0 Test:
> |
> |if(variable === 0 && typeof variable === "number")
>
> Is there any value in keeping these notes?
Regarding *this* note, I do not think so. “===” explicitly does _not_ do
type conversion:
var variable = {valueOf: function () { return 0; }};
/* true */
variable == 0;
/* false */
variable === 0;
It is possible that you had changed “==” to “===” and kept the previously
useful “typeof” test.
You should insert a space after “if”, though, to avoid the appearance of a
function call.
> The tests seem to be too complicated!
ACK.
> (Assuming no one has redefined the value of »undefined«,
> otherwise we could use »void 0«.)
ACK. It should be noted that, while in newer implementations assignment to
the “undefined” property of the global object has no effect in non-strict
mode and throws a TypeError in strict mode (because it is read-only)¹, it is
still possible to have a variable (in both modes) or user-defined property
(in non-strict mode, using the “with” statement) in the scope chain –
var undefined = 23;
− because “undefined” is _not_ a reserved word². (I think this should be
fixed at least for strict mode.)