JavaScript中undefined和null详解

来源:互联网 发布:linux daemontools 编辑:程序博客网 时间:2024/06/05 10:59

JavaScript中有两个特殊的值:undefined和null,在比较他们的时候要留心。

在读取未赋值的变量或试图读取对象没有的属性时得到的就是undefined值。

null则用于表示已经赋了一个值但该值不是有效的object、string、number或boolean值(也就是说所定义的是一个无值(no value))。

例如:

<script>    var myData = {        name: "test",        age: null,    };    document.writeln(myData.weather);    document.writeln(myData.name);    document.writeln(myData.age);</script>

运行结果为:

undefined test null 

区分null和undefined

如果想同等对待undefined和null,那么应该使用相等运算符(==),让JavaScript进行类型转换。此时值为undefined的变量会被认为与值为null的变量相等。

如果区分null和undefined,则应该使用等同运算符(===)。

例如:

<script>    var firstVal = null;    var secondVal;    var equality = firstVal == secondVal;    var identity = firstVal === secondVal;    document.writeln("Equality: " + equality);    document.writeln("Identity: " + identity);</script>

运行结果为:

Equality: true Identity: false

补充:

相等运算符(==)会尝试将操作数转换为同一类型以便判断是否相等。只判断两个值是否相等,而不管其类型。

等同运算符(===)不仅判断值是否相等,还会判断其类型是否相等。

2 0
原创粉丝点击