本文目录

JS Null 类型

🌙
手机阅读
本文目录结构

Null 类型

Null 类型是第二个只有一个值的数据类型,这个特殊的值是 null 。

从逻辑角度来看, null 值表示一个空对象指针,而这也正是使用 typeof 操作符检测 null 值时会返回 “object” 的原因,

如下面的例子所示:

var car = null;
alert(typeof car); // "object"

分享给大家一段实用的判断类型方法

let _typeof = function (data) {
    let value = /\[object (\w+)\]/.exec(
        Object.prototype.toString.call(data)
    );
    return value ? value[1].toLowerCase() : '';
}

这个方法对 null 进行判断时候,就会返回 null,这个更加准确

https://a.axihe.com/img/api/jses/Code_TdRU3clTnv.png

如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为 null 而不是其他值。

这样一来,只要直接检查 null 值就可以知道相应的变量是否已经保存了一个对象的引用,如下面的例子所示:

if (car != null){
// 对 car 对象执行某些操作
}

实际上, undefined 值是派生自 null 值的,因此 ECMA-262 规定对它们的相等性测试要返回 true :

alert(null == undefined); //true

这里,位于 null 和 undefined 之间的相等操作符( == )总是返回 true ,不过要注意的是,这个操作符出于比较的目的会转换其操作数。

尽管 null 和 undefined 有这样的关系,但它们的用途完全不同。

如前所述,无论在什么情况下都没有必要把一个变量的值显式地设置为 undefined ,可是同样的规则对 null 却不适用。

换句话说,只要意在保存对象的变量还没有真正保存对象,就应该明确地让该变量保存 null 值

这样做不仅可以体现 null 作为空对象指针的惯例,而且也有助于进一步区分 null 和 undefined 。

比如定时器我一般都是写为 null

https://a.axihe.com/img/api/jses/Code_Mmv2pMou5u.png

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了