如何在JavaScript中检查空值?
JavaScript 没有内置的方法来检查一个值是否为空,创建一个值很容易。在这样做之前,我们应该定义这样一个方法。根据 JavaScript 的需要进行修改。首先,任何假值都应该被认为是空值。这些值包括null、undefined、0、 false、""、 NaN。const isFalsy = value => !value; isFalsy(null); // true isFalsy(undefined); // true isFalsy(0); // true isFalsy(false); // true isFalsy(""); // true isFalsy(NaN); // true其次,空数组和对象也应该被认为是空的const isEmptyCollection = value => (Array.isArray(value) || value === Object(value)) && !Object.keys(value).length; isEmptyCollection([]); // true isEmptyCollection({}); // true除了空字符串(")之外,只有空格的字符串也应该被认为是空的。const isWhitespaceString = value => typeof value === "string" && /^s*$/.test(value); isWhitespaceString(" "); // true isWhitespaceString(" r"); // true最后,我们可以检查一些常用的内置对象。无效的 Date 实例以及空的 Set 和 Map 实例都应视为空白。const isInvalidDate = value => value instanceof Date && Number.isNaN(value.getTime()); const isEmptySet = value => value instanceof Set && value.size === 0; const isEmptyMap = value => value instanceof Map && value.size === 0; isInvalidDate(new Date("hello")); // true isEmptySet(new Set()); // true isEmptyMap(new Map()); // true将所有内容放在一起,我们最终可以设置 isBlank 方法。const isFalsy = value => !value; const isWhitespaceString = value => typeof value === "string" && /^s*$/.test(value); const isEmptyCollection = value => (Array.isArray(value) || value === Object(value)) && !Object.keys(value).length; const isInvalidDate = value => value instanceof Date && Number.isNaN(value.getTime()); const isEmptySet = value => value instanceof Set && value.size === 0; const isEmptyMap = value => value instanceof Map && value.size === 0; const isBlank = value => { if (isFalsy(value)) return true; if (isWhitespaceString(value)) return true; if (isEmptyCollection(value)) return true; if (isInvalidDate(value)) return true; if (isEmptySet(value)) return true; if (isEmptyMap(value)) return true; return false; }; isBlank(null); // true isBlank(undefined); // true isBlank(0); // true isBlank(false); // true isBlank(""); // true isBlank(" r "); // true isBlank(NaN); // true isBlank([]); // true isBlank({}); // true isBlank(new Date("hello")); // true isBlank(new Set()); // true isBlank(new Map()); // true
本期就分享到这里,希望能与大家共同学习与交流。
原文:How can I check for a blank value in JavaScript? - 30 seconds of code