It seems safe to assume so since, in an arithmetic expression (e.g. addition), the method ToNumber would be called on it, evaluating NaN
and +0
from undefined
and null
respectively:
To Number Conversions
╔═══════════════╦════════════════════════════════════════════╗
║ Argument Type ║ Result ║
╠═══════════════╬════════════════════════════════════════════╣
║ Undefined ║ NaN ║
║ ║ ║
║ Null ║ +0 ║
║ ║ ║
║ Boolean ║ The result is 1 if the argument is true. ║
║ ║ The result is +0 if the argument is false. ║
║ ║ ║
║ Number ║ The result equals the input argument (no ║
║ ║ conversion). ║
║ ║ ║
║ String ║ See grammar and note below. ║
║ ║ ║
║ Object ║ Apply the following steps: ║
║ ║ 1. Let primValue be ToPrimitive(input ║
║ ║ argument, hint Number). ║
║ ║ 2. Return ToNumber(primValue). ║
╚═══════════════╩════════════════════════════════════════════╝
ECMAScript Language Specification - ECMA-262 Edition 5.1