undefined
表示 未定义 或 未赋值
出现场景
- 声明了变量,但未赋值
- 对象属性不存在
执行下面代码,结果是 undefined:
<script>
var a
console.log(a)
</script>
判断
<script>
var a;
if (typeof(a) == "undefined") {
alert("undefined");
}
</script>
null
是一种特殊的object,表示 无 或 不存在。必须手动赋值,仅用于 【明确表示某个值 “应该存在但当前为空”】的场景
相当于java中的 null,该变量没有保存有效的数、字符串、boolean、数组或对象;
判断
<script>
// 班长应该存在,但当前未指定
var banzhang = null
if (banzhang == null){
alert("a是null")
}
</script>
算数运算
var x = null
console.log("1 + x = " , 1 + x)
结果是 1,说明 x 值是 null,在算数运算时是 0
NaN
是 not a number 的缩写,表示 非数字
出现场景一
var x //undefined
var y //undefined
var res = x + y //2个undefined运算
console.log("res=",res)
出现场景二
执行下面代码,结果就是 NaN:
var a = parseInt("a李雷")
console.log("a=",a)
判断
<script>
var a = 'a';
if(isNaN(a)){
alert("a是NaN");
}
</script>