//代码如下:
var x;
console.log(x === undefined); // 1
console.log(x === null); // 2
console.log(x == undefined); // 3
console.log(x == null); // 4
console.log(null === undefined);// 5
console.log(null == undefined); // 6
主要疑问是:
- 5和6的结果为什么不同?
- 为什么1和3都是
true
但2和4一个false
一个true
?
用typeof去测
===比较类型和值
==比较值
1、5和6的结果为什么不同?
null是一个对象,undefined的连对象都不是
2、为什么1和3都是true但2和4一个false一个true?
var x;没有赋值,就是undefined,alert(x);可看出结果
2是false的原因是比较类型造成的false,因为null是对象,undefined不是
4是true的原因是比较值造成,x的值没有,所有二者比较结果一致