在JavaScript中,undefined和not defined是两个不同的概念。
- undefined:表示一个变量已经声明了,但是它的值还没有被设置。例如:
let x; console.log(x); // undefined
- not defined:表示一个变量还没有被声明。例如:
console.log(y); // Uncaught ReferenceError: y is not defined
在第二个例子中,变量y未被声明,因此会抛出一个ReferenceError异常。这个错误发生在运行时,而不是编译时,因为变量y的存在是未知的,因此JavaScript解释器无法找到它。
在总体上,undefined表示变量已经被声明了,但是还没有被赋值,而not defined则表示变量还没有被声明。
总结:
分清楚定义还是未定义:变量未定义则是not defined;
定义了未赋值、函数无返回值、对象的属性未赋值、调用有参函数未传递参数是undefined;
定义了对象,但是未给对象分配内存,即对象无指向为null。