- ECMAScript中的数据类型:
- 原始类型: Undefined、Null、Boolean、Number 、 String、Symbol(ECMAScript 6 新定义,类似于C中的枚举类型)
- 复杂数据类型:Objet
- null 是 Object
- undefined == null //true (undefined 派生自null)
- 0 == ‘’ // true
- [] == false // true
- 最初设计中,null是一个表示”无”的对象,转为数值时为0;undefined是一个表示”无”的原始值,转为数值时为NaN。
- null表示”没有对象”,即该处不应该有值
- undefined表示”缺少值”,就是此处应该有一个值,但是还没有定义
- null 可理解为一个空指针,尚未指向任何对象。
- 判断变量是否为undefined :
- 使用 === 或者 !== , 当使用普通相等符== 时,会同时检查是否等于null
- 使用typeof操作符
- 判断变量是否为null:
- 使用 === 或者 !==
- 不可使用typeof , typeof null == ‘object’ // true
- void 运算符 对给定的表达式进行求值,然后返回 undefined
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
if (!undefined)
console.log('undefined is false');
// undefined is false
if (!null)
console.log('null is false');
// null is false
undefined == null
// true
Object.getPrototypeOf(Object.prototype)
// null
var i;
i // undefined
function f(x){console.log(x)}
f() // undefined
var o = new Object();
o.p // undefined
var x = f();
x // undefined
var value;
console.log(typeof data); // "undefined"
console.log(typeof value); // "undefined"
console.log(data === undefined); //error
var data;
console.log(data === void 0); //true