javascript基础学习系列十二:Null类型

Null 类型同样只有一个值,即特殊值 null。逻辑上讲,null 值表示一个空对象指针,这也是给 typeof 传一个 null 会返回"object"的原因:

let car = null;
    console.log(typeof car);  // "object"

在定义将来要保存对象值的变量时,建议使用 null 来初始化,不要使用其他值。这样,只要检查 这个变量的值是不是 null 就可以知道这个变量是否在后来被重新赋予了一个对象的引用,比如:

if (car != null) {
    
    
// car 是一个对象的引用
}

undefined 值是由 null 值派生而来的,因此 ECMA-262 将它们定义为表面上相等,如下面的例 子所示:

console.log(null == undefined);  // true

用等于操作符(==)比较 null 和 undefined 始终返回 true。但要注意,这个操作符会为了比较 而转换它的操作数(本章后面将详细介绍)。
即使 null 和 undefined 有关系,它们的用途也是完全不一样的。

如前所述,永远不必显式地将 变量值设置为 undefined。但 null 不是这样的。任何时候,只要变量要保存对象,而当时又没有那个 对象可保存,就要用 null 来填充该变量。这样就可以保持 null 是空对象指针的语义,并进一步将其 与 undefined 区分开来。

null 是一个假值。因此,如果需要,可以用更简洁的方式检测它。不过要记住,也有很多其他可 能的值同样是假值。所以一定要明确自己想检测的就是 null 这个字面值,而不仅仅是假值。

    let message = null;
    let age;

2. Boolean类型:

Boolean(布尔值)类型是 ECMAScript 中使用最频繁的类型之一,有两个字面值:true 和 false。 这两个布尔值不同于数值,因此 true 不等于 1,false 不等于 0。下面是给变量赋布尔值的例子:

    let found = true;
    let lost = false;

注意,布尔值字面量 true 和 false 是区分大小写的,因此 True 和 False(及其他大小混写形式) 5 是有效的标识符,但不是布尔值。
虽然布尔值只有两个,但所有其他 ECMAScript 类型的值都有相应布尔值的等价形式。要将一个其 他类型的值转换为布尔值,可以调用特定的 Boolean()转型函数:

    let message = "Hello world!";
    let messageAsBoolean = Boolean(message);

在这个例子中,字符串 message 会被转换为布尔值并保存在变量 messageAsBoolean 中。 Boolean()转型函数可以在任意类型的数据上调用,而且始终返回一个布尔值。什么值能转换为 true 或 false 的规则取决于数据类型和实际的值。

在这里插入图片描述
console.log 会输出字符串"Value is true",因为字符串 message 会被自动 转换为等价的布尔值 true。由于存在这种自动转换,理解流控制语句中使用的是什么变量就非常重要。 错误地使用对象而不是布尔值会明显改变应用程序的执行流。

猜你喜欢

转载自blog.csdn.net/wanmeijuhao/article/details/135439118