I learned something interesting about JavaScript undefined. Here is the axioms and proofs.
- undefined is a type.
- undefined type has only one value. that values is undefined.
- There is a global variable called undefined
- global undefined variable has default value undefined
- global undefined variable is not a constant
- undefined is not a keyword
Proof (tested in firebug console)
1. typeof undefined \\undefined
2. undefined = 1; alert(typeof undefined !== 'undefined'); // false
3. var name = undefined; \\ global variable undefined is assigned to name
4. alert(name); \\ undefined, that means undefined global variable has value undefined
5. undefined = 'rajakvk'; \\ we can change value
6. var undefined = 'rajakvk'; \\ no syntax error
var if = 'rajakvk'; \\ SyntaxError: missing variable name
This gives very interesting findings and helps to understand strange JavaScript bugs.