undefined,null,NaN,false,"",0

阅读更多
1.undefined:以下三种情况typeof 返回类型为undefined,undefined 并不等同于未定义的值,(只能用 === 运算来测试某个值是否是未定义的)
  • 当变量未初始化时
  • 变量未定义时
  • 函数无明确返回值时(或函数没有返回值时返回的都是undefined)

var x;
var y = false;
typeof(x) // "undefined"
x == y // true
x === y // false

2.null:undefined 是由null派生处理的,因此undefined == null,在js中用typeof方法就会发现null其实是一个对象
var x = null;
var y = false;
x == y // true
x === y // false

3.NaN是一个特殊的number类型,表示非数(Not a Number),类型转换失败就会返回NaN,例如:要把一个单词apple转换为数值就会失败,因为没有等价的数值,NaN与任何值都不相等,与自己也不相等。判断是否是NaN类型可以使用 isNaN(),如果返回false则表示是一个数字,否则返回false;
4.false运算时null与undefined都可以被类型转换为false,但不等值于false:

document.writeln(!null, !undefined); //return true,true 
document.writeln(null==false); //return false 
document.writeln(undefined==false); //return false 

5.""
var x = "";
var y = false;
x == y //true
x === y // false

6.0
var x = 0;
var y = false;
x == y //true
x === y // false

注:
1.== 是指等式,与类型无关(Equality, regardless of type.)
  ===是指恒等式,类型必须想匹配(Identity, types must match.)
2.typeof 返回的是字符串,有六种可能:"number"、"string"、"boolean"、"object"、"function"、"undefined"

var a1; 
var a2 = true; 
var a3 = 1; 
var a4 = "Hello"; 
var a5 = new Object(); 
var a6 = null; 
var a7 = NaN; 
var a8 = undefined; 
alert(typeof a); //显示"undefined" 
alert(typeof a1); //显示"undefined" 
alert(typeof a2); //显示"boolean" 
alert(typeof a3); //显示"number" 
alert(typeof a4); //显示"string" 
alert(typeof a5); //显示"object" 
alert(typeof a6); //显示"object" 
alert(typeof a7); //显示"number" 
alert(typeof a8); //显示"undefined" 

你可能感兴趣的:(undefined,null,NaN,false,"",0)