點燈坊

學而時習之,不亦悅乎

使用 isNil() 同時判斷 undefined 與 null

Sam Xiao's Avatar 2019-08-09

由於 ECMAScript 同時存在了 undefinednull,因此實務上常常需要同時判斷這兩個值,Ramda 提供了 isNil() 讓我們一次判斷,語意也更清楚。

Version

macOS Mojave 10.14.5
VS Code 1.34.0
Quokka 1.0.216
Ramda 0.26.1

isNil()

// isNil :: * -> Boolean
let isNil = x => (x === undefined || x === null);

isNil(undefined); // ?
isNil(null); // ?

傳統要同時判斷 undefinednull,會使用 || 搭配 === 各自判斷 。

isnil000

Ramda

import { isNil } from 'ramda';

isNil(undefined); // ?
isNil(null); // ?

事實上 Ramda 已經提供 isNil(),可直接使用。

isNil()
* -> Boolean
判斷是否為 undefinednull

isnil001

Conclusion

  • Ramda 的 isNil() 算實務上最推薦寫法,不只語意清楚,還一次判斷 nullundefined 兩個 nullable
  • 若要連 empty value 也一起判斷,就得同時使用 Ramda 的 isEmpty() && isNil()

Reference

Ramda, isNil()
Ramda, isEmpty()