如何让获取来源URL参数的函数无值时返回undefined而非null
修改函数确保取不到参数时始终返回undefined
你当前的函数在两种场景下会返回非undefined的值:一是没有来源URL(document.referrer为空)时返回false,二是有来源URL但找不到目标参数时返回null。以下是两种修改方案,能让函数无论哪种情况都返回undefined:
方案一:显式判断并转换返回值
export const getParamFromReferrer = ({ param }) => { // 无来源URL直接返回undefined if (!document.referrer) return undefined; const paramValue = new URLSearchParams(new URL(document.referrer).search).get(param); // 将null转换为undefined,保留空字符串等合法参数值 return paramValue ?? undefined; };
方案二:简化短路逻辑写法
如果偏好更紧凑的箭头函数风格,可以这么写:
export const getParamFromReferrer = ({ param }) => document.referrer ? new URLSearchParams(new URL(document.referrer).search).get(param) ?? undefined : undefined;
关键说明
使用**空值合并运算符??**而非||,是因为??仅在值为null或undefined时才返回右侧值,不会误把空字符串、0这类合法参数值转换成undefined,更贴合业务场景需求。
内容的提问来源于stack exchange,提问作者user1486133
相关产品推荐
相关产品推荐

