JavaScript教程:undefined、null和NaN

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>

原文出处:/show_1IXIPBCgtnP.html