{
console.log("typeof null:", typeof null);
console.log("typeof undefined:", typeof undefined);
try {
console.log("null instanceof Object:", null instanceof Object);
} catch (e) {
console.log("null instanceof Object error:", e.message);
}
try {
console.log("undefined instanceof Object:", undefined instanceof Object);
} catch (e) {
console.log("undefined instanceof Object error:", e.message);
}
console.log("Object.prototype.toString.call(null):", Object.prototype.toString.call(null));
console.log("Object.prototype.toString.call(undefined):", Object.prototype.toString.call(undefined));
}
{
function isObject(val) {
return val !== null && typeof val === 'object';
}
function getType(val) {
if (val === null) return 'null';
if (Array.isArray(val)) return 'array';
return typeof val;
}
console.log("--- isObject check ---");
console.log("isObject({}):", isObject({})); console.log("isObject([]):", isObject([])); console.log("isObject(null):", isObject(null)); console.log("isObject(undefined):", isObject(undefined));
console.log("\n--- Robust Type Checking ---");
console.log("getType({}):", getType({})); console.log("getType([]):", getType([])); console.log("getType(null):", getType(null)); console.log("getType(undefined):", getType(undefined));
console.log("null == undefined:", null == undefined); }
{
var a = {a: 1, b: null, c: undefined};
console.log("a =", a);
}
console.log("All tests completed.");