是否有将"undefined"更改为"null"的JavaScript成语?



有很多javascript成语,可以在类型和类似事物之间进行。

!可以将任何虚假的东西转换为布尔 true!!可以将任何虚假的东西转换为实际的布尔 false+可以将代表数字代表数字的字符串转换为truefalse或一个字符串,等等。

。 。

是否有类似的东西将undefined转换为null

现在我正在使用三元? :,但是很难知道我是否缺少有用的技巧。


好吧,让我 fotive 一个例子...

function callback(value) {
  return value ? format(value) : null;
}

callback通过第三方代码调用,有时通过undefined
第三方代码可以处理传递的null,但不能处理undefinedformat()也是第三方,无法处理undefinednull

javaScript现在支持一个null-coalescing操作员:??。它可能尚未准备就绪(请咨询支持表),但是与节点或thrasspiler(打字稿,babel等)一起使用肯定是安全的。

PER MDN,

无效的合并运算符(??)是逻辑运算符,当其左侧操作数为null或未定义时返回其右侧操作数,否则返回其左侧操作数。

||可以提供"默认值"。当左操作数是错误的时值,??提供了"默认值"。值如果左操作数为null或未定义。您可以使用它来胁迫未定义为null:

    // OR operator can coerce 'defined' values
    "value"   || null;    // "value"
    0         || null;    // null
    false     || null;    // null
    ""        || null;    // null
    undefined || null;    // null
    
    // The null-coalescing operator will only coerce undefined or null
    "value"   ?? null;    // "value"
    0         ?? null;    // 0
    false     ?? null;    // false
    ""        ?? null;    // ""
    undefined ?? null;    // null

一个基于问题的示例:

    function mustNotReturnUndefined(mightBeUndefined) { // can return null
        // Substitute empty string for null or undefined
        let result = processValue(mightBeUndefined ?? "");
        // Substitute null for undefined
        return result ?? null;
    }

undefined || null-或任何虚假||null-将返回null

这是一个相当古老的问题,我的答案可能有点晚了,但是我决定以下方式:

const valueOrNull = (value = null) => value;
const a = { d: '' };
valueOrNull(a.b?.c) === null; // true
valueOrNull(a.d) === '';      // true
valueOrNull() === null;       // true

任何undefined值都将null作为默认值;

public static replaceUndefinedWithNull(object: any) {
 if (isUndefined(object)) {
  return null;
 }
return object;
}

相关内容

  • 没有找到相关文章

最新更新