javascript null vs undefined

这个是很古老的问题了.

一直存在争议,有些人认为,很多语言没用 undefined 也活的好好,为啥要 undefined 呢. 

那有了 undefined 是否还需要 null 呢 ? 

typesciprt 的 guilde 就说了, 只用 undefined 不要用 null, tslist 也可以设置规则不使用 null

听上去好像可以哦,但是开发时很快发现,这个规则并没用带来多大好处,因为你不用还有别人会用,而这个别人也会是你代码的一部分

比如 dom api, document.getElementById('dd') 就返回 null

比如框架 angular 也有一堆的 null

所以强制 2 选 1 基本上是不可行的. 

那么我们到底应该什么时候用 undefined 和 null 呢?

我自己写 c# 多,所以我会比较能适应 null, 所以大部分情况下我会使用 null, 而遇到 js 原生的 undefined 就判断一下就好了。

js 有几个常见的地方会 undefined 

1. 定义了变量但是暂时还没有复制. 

2. 参数没用放

3. 函数没用返回

4. 一些原生 api, 比如 array.find 

我的一个基本原则是,绝对不要赋值 undefined. 

函数要嘛是 void 要嘛是 return 

有 return 就不能是 undefined 了。

原文地址:https://www.cnblogs.com/keatkeat/p/12095272.html