undefined和null的关系如下
- undefined表示某个变量不存在或者没有为其分配值,null表示某个变量有值,其值为null(空)
- undefined从某种意义上和null是相等的,undefined==null返回的是true
- 变量和undefined和null比较我们使用===(精确等),这样就能区分两者的微妙差别
main.js
function Person() {
this.age = 0;
this.name = "joy";
this.sex = null;
}
var lisa = new Person();
if(lisa.sex == undefined){
console.log("lisa.sex的值与undefined相等");
}
if (lisa.sex === undefined) {
console.log("lisa.sex的值与undefined精确等");
}else {
console.log("lisa.sex的值与undefined不精确等");
}
if (lisa.sex === null) {
console.log("lisa.sex的值与null精确等");
}else {
console.log("lisa.sex的值与null不精确等");
}
if (lisa.boy === undefined) {
console.log("lisa.boy的值与undefined精确等");
}else {
console.log("lisa.boy的值与undefined不精确等");
}
if (lisa.boy === null) {
console.log("lisa.boy的值与null精确等");
}else {
console.log("lisa.boy的值与null不精确等");
}
if (undefined == null) {
console.log("undefined与null相等");
}
if (undefined === null) {
console.log("undefined与null精确等");
}else {
console.log("undefined与null不精确等");
}
输出结果如下
lisa.sex的值与undefined相等
lisa.sex的值与undefined不精确等
lisa.sex的值与null精确等
lisa.boy的值与undefined精确等
lisa.boy的值与null不精确等
undefined与null相等
undefined与null不精确等
注意:定义一个变量之后,如果没有为该变量赋值,该变量的值就为undefined,这是系统默认分配的。undefined关键字是在ECMAScript标准化后加入,有些浏览器还不支持,可以在javascript的开头加入一行定义 var undefined;