目录
1、null
1.1、用来初始化一个变量,这个变量可能赋值为一个对象。
- 1、null
-
- 1.1、用来初始化一个变量,这个变量可能赋值为一个对象。
- 1.2、用来和一个已经初始化的变量比较,这个变量可以是对象,也可以不是对象。
- 1.3、当函数的参数期望是对象时,用作参数的传入。
- 1.4、当函数的返回值期望是对象时,用作返回值传出。
- 2、undefined
-
- 2.1、声明一个变量,但是没有赋值。
- 2.2、访问对象上不存在的属性或者未定义的变量。
- 2.3、函数定义了形参,但没有传递实参。
- 2.4、使用void对表达式求值。
- 3、总结
var a = null; console.log(a); // null let b = { a: null }; console.log(b); // {a: null} const c = [null]; console.log(c); // [null]1.2、用来和一个已经初始化的变量比较,这个变量可以是对象,也可以不是对象。
var a = 10; console.log(a == null); // false var b = null; console.log(b == null); // false var c = {}; console.log(c == null); // false var d = []; console.log(d == null); // false1.3、当函数的参数期望是对象时,用作参数的传入。
function fn(a) { console.log(a); // null console.log(typeof a); // object }; fn(null);1.4、当函数的返回值期望是对象时,用作返回值传出。
function fn(a) { console.log(a); // 1 return null; }; console.log(fn(1)); // null console.log(typeof fn(1)); // object2、undefined 2.1、声明一个变量,但是没有赋值。
var vlcs; console.log(vlcs); // undefined2.2、访问对象上不存在的属性或者未定义的变量。
console.log(Object.foo); // undefined console.log(typeof demo); // undefined2.3、函数定义了形参,但没有传递实参。
// 定义形参 a function fn(a) { console.log(a); // undefined }; //未传递实参 fn();2.4、使用void对表达式求值。
void 0; // undefined void false; // undefined void []; // undefined void null; // undefined void function fn() {}; // undefined3、总结
3.1、undefined表示一个变量最原始的自然状态值。 3.2、null表示一个变量被人为的设置为空对象, 而不是原始状态。 3.3、在实际使用过程中,为了保证变量所代表的语义,不要对一个变量赋值为undefined,当需要释放一个对象时,直接赋值为null即可。